我在vm虛擬機上想安裝 winxp和linux,而後在linux機上裝apache+php+ftp+mysql,如下爲個人按裝過程:php
1:連通虛擬機:兩個虛擬機都選Host-Onl,查看主機VirtualBox Host-Only Network ip地址爲192.168.56.1,那我讓linux,windowsxp都讓爲該網址192.168.56.2,192.168.56.3,html
而後按如下方法就可讓兩虛擬機互ping通,僅是如上的設置,可能還不能保證就能夠實現WINDOWS與LINUX的ping互通問題。這其中就涉及到雙方的防火牆問題了。前端
一、WINDOS側存在防火牆。若是你發現WINDOWS能夠ping通LINUX,而LINUX不能ping通WINDOWS,則應該是你WINDOWS本機上防火牆策略致使的問題。我本次也是被這個問題折磨了好長一段時間,直到關閉了WINDOSW本機的防火牆,終於就實現ping互通了。關閉本機WINDOWS防火牆的關閉方法以下:mysql
開始 -> 控制面板 -> 系統和安全 -> Windows防火牆 -> 打開或關閉Windows防火牆 -> 關閉Windows防火牆linux
二、LINUX側存在防火牆。此時可能出現LINUX能ping通WINDOWS,可是windows卻不能ping通LINUX。sql
檢查LINUX是否有防火牆的方法是:數據庫
iptables -L 命令查看當前LINUX系統的策略。apache
我這裏不須要各類防火牆策略,所以直接簡單設置防火牆規則以下:vim
iptables -F //清空當前防火牆規則windows
iptables -X //刪除系統配置的全部防火牆規則
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
只要配置成開機自動執行上述命令,則啓動後LINUX系統當前的防火牆策略就以下:
這樣,就解除了LINUX的防火牆設置。
如今,就能夠實現WINDOWS <-> LINUX系統之間的IP互通了。在LINUX上開啓ssh服務,samba服務,均可以從WINDOWS上正常登錄了。
2:安裝ftp:
在rhel6光盤中自帶了該軟件,#mkdir /mnt/cdrom
#mount /dev/cdrom /mnt/cdrom
安裝軟件包:#cd /mnt/cdrom/Packages
#rpm -ivh vsftpd*
安須要修改主配置文件:/etc/vsftpd/vsftpd.conf
可能出現問題:
a:登錄時如出現,"500 OOPS",這是由於SELinux 限制了用戶登錄FTP服務器,要修改SELinux的設定值:#setsebool -P ftp_home_dir on
b:如出現「ftp:connect:NO route to host」這樣的錯誤提示,咱們要修改防火牆規則,以便讓21號端口經過防火牆:#iptables -I INPUT -p tcp --dport 21 -j ACCEPT,編輯/etc/selinux/config 文件,把"SELinux=enforcing"改成" SELinux =disabled", 關閉SELinux.
c:增長ftp用戶,#useradd -s /sbin/nologin user1
#passwd user1
修改ftp目錄權限:#chmod -R o+w /var/www/html
開啓禁用SELinux的FTP的傳輸審覈功能:#getsebool -a|grep ftp
#setsebool -P allow_ftpd_anon_write off
#setsebool -P ftpd_disable_trans on
#getsebool -a|grep ftp
3:安裝apache
a,查看系統中是否已安裝:#rpm -qa |grep httpd
b,在rhel6光盤中自帶了該軟件,#mkdir /mnt/cdrom
#mount /dev/cdrom /mnt/cdrom
安裝軟件包:#cd /mnt/cdrom/Packages
用#find apr*,查找 appache所依賴軟件,所有安裝:# rpm -ivh apr*
而後安裝:# rpm -ivh http_tools*
# rpm -ivh http-2.2.15*
# rpm -ivh httpd_manual*
再用#rpm -qa |grep httpd確認是否已安裝完成
啓動apache服務器:#service httpd restart
查看狀態:service httpd status
查看服務 器佔用端口狀況:netstat -tnlp|grep httpd
如在ie中輸入服務器地址能出現read hat testpage 頁面,則說明已成功安裝
4:安裝mysql
a,利用YUM工具安裝,#yum groupinstall mysql
完成後,用 setup,開啓mysql服務。
b: 沒法鏈接 mysql
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
linux下鏈接本機mysql有兩種方式:
一、socket 方式
二、tcp/ip方式
就是這種問題,有些時候使用tcp/ip方式,有些時候是另一種。
因此你能夠有兩種方式解決:
一、直接強制使用tcp/ip方式
二、把socket補上
方法:
一、mysql 後面加個 --protocol=tcpip
二、 關閉 mysql , cd 到 /tmp 而後輸入: ln -s /var/lib/mysql/mysql.sock mysql.sock , 啓動 mysql
//////////////////////////////////////////////////////////////
MySQL安裝後,默認只容許經過127.0.0.1的方式在服務器訪問3306端口
1). 3306端口是否是沒有打開?
使用nestat命令查看3306端口狀態:
~# netstat -an | grep 3306
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN
從結果能夠看出3306端口只是在IP 127.0.0.1上監聽,因此拒絕了其餘IP的訪問。
解決方法:修改/etc/mysql/my.cnf文件。打開文件,找到下面內容:
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
bind-address = 127.0.0.1
把上面這一行註釋掉或者把127.0.0.1換成合適的IP,建議註釋掉。
從新啓動後,從新使用netstat檢測:
~# netstat -an | grep 3306
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN
2). 問題解決了嗎?
如今使用下面命令測試:
~# mysql -h 10.1.1.2 -u root -p
Enter password:
ERROR 1130 (00000): Host 'B0324-Desktop.local' is not allowed to connect to this MySQL server
結果出乎意料,仍是不行。
解決方法:原來還須要把用戶權限分配各遠程用戶, MySQL默認root帳戶不帶%而是127.0.0.1,所以須要修改。
登陸到mysql服務器,使用grant命令分配權限
mysql> grant all on database_name.* to user_name@'%' identified by 'user_password';
其中database_name、user_name和user_password根據實際狀況設置。
完成後使用mysql命令鏈接,提示成功,爲了確保正確能夠再遠程登錄測試一下。
ERROR 1130: Host '192.168.1.3' is not allowed to connect to this MySQL server
解決方法:
1。 改表法。多是你的賬號不容許從遠程登錄,只能在localhost。這個時候只要在localhost的那臺電腦,登入mysql後,更改 "mysql" 數據庫裏的 "user" 表裏的 "host" 項,從"localhost"改稱"%"
mysql -u root -pvmwaremysql>use mysql;mysql>update user set host = '%' where user = 'root';mysql>select host, user from user;
執行FLUSH PRIVILEGES命令 而後再進行鏈接
2. 受權法。例如,你想myuser使用mypassword從任何主機鏈接到mysql服務器的話。
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
若是你想容許用戶myuser從ip爲192.168.1.3的主機鏈接到mysql服務器,並使用mypassword做爲密碼
GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.1.3' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO 'root'@'10.10.40.54' IDENTIFIED BY '123456' WITH GRANT OPTION;
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
經常使用檢查步驟。
1. PING hostname 或 PING 189.xx.xx.xx 確認服務器IP層通訊沒有問題。若是PING通則繼續(2),PING不通則找網絡方面專家協助。
2. TELNET hostname 3306 確認服務器TCP層通訊沒有問題。(你的端口號可能不是3306),如通則繼續,如不通,請檢查mysqld 是否已經在運行,防火牆屏蔽了端口。
3. 檢查用戶權限, show grants ...
你的用戶沒有使用 root 帳戶,或者你的root帳戶沒有授予登陸權限,須要使用
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
受權主機是%,%即表明任意位置的主機,
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// =====================================================================================================
故障現象 : 沒法鏈接 mysql
錯誤信息 :ERROR 1045 (28000): Access denied for user 'usera'@'localhost' (using password:YES)
緣由 : 用戶帳號並未建立
檢查 :以管理員ROOT登陸後,show grants for 'usera'@'localhost'; 或者 select user from mysql.user; 確認用戶帳號是否存在。
處理 :建立用戶帳號。
=====================================================================================================
==========================================================================
故障現象 : 沒法鏈接 mysql
錯誤信息 :ERROR 1130: Host xx.xx.xx.xx is not allowed to connect to this MySQL server
緣由 : mysql服務器沒有賦予此客戶端遠程鏈接的權限。
檢查 :在mysql服務器本地查詢mysql庫裏user表對應的host是否包含客戶端機器的IP(%爲不限制IP容許遠程鏈接)。
處理 :修改mysql庫下的user表:update user set host = '%' where user ='XXX';flush privileges;
====================================================================================
=====================================================================================================
故障現象 : 沒法鏈接 mysql
錯誤信息 :ERROR 2003 (HY000): Can't connect to MySQL server on 'hostxxxxx' (10061)
緣由 : mysqld數據庫服務沒有啓動。
檢查 :在windows 的任務管理器,或者 unix/linux 下 ps -aux | grep mysql 看一下。確認服務已經啓動。
處理 :啓動mysqld 服務
=====================================================================================================
=====================================================================================================
故障現象 : 沒法鏈接 mysql
錯誤信息 :ERROR 2003 (HY000): Can't connect to MySQL server on 'hostxxxxx' (10061)
緣由 : mysqld 客戶端與服務端端口不一致。
檢查 :在my.ini 設置下服務端口 這種狀況特別是客戶都與遠程服務器端口不一致 很容易出現的問題
處理 :啓動mysqld 服務
=====================================================================================================
=====================================================================================================
故障現象 : 沒法鏈接 mysql windows
錯誤信息 :ERROR 2003 (HY000): Can't connect to MySQL server on 'hostxxxxx' (10061)
緣由 : 同時開啓大量的tcp端口和而僅有一小部分短命端口時,當他們處於time_wait時期,mysql可能會跑錯端口
檢查 :在windows 默認會開啓5000個臨時端口供調用,而他們的生命僅僅是120s,意思是在關閉端口的時候會有120秒的延時
處理 :減小不沒必要要的tcp端口。
修改註冊表
=====================================================================================================
=====================================================================================================
故障現象 : 沒法鏈接 mysql
錯誤信息 :ERROR 2002 (HY000): Can't connect to local MySQL server server through socket '/var/lib/mysql/mysql.sock'(111)
緣由 : mysqld的mysql.sock沒在相應的位置。
處理 :1.先查看/etc/rc.d/init.d/mysql status 看看是否啓動
2.改權限 chown -R mysql:msyql /var/lib/mysql
3.修改/etc/my.cnf (注意:先停數據庫)
[mysqld]
datadir=/usr/local/mysql/data
socket=/var/lib/mysql/mysql.sock
[mysql.server]
user=mysql
basedir=/usr/local/mysql
[client]
socker=/var/lib/mysql/mysql.sock
4.啓動數據庫
=====================================================================================================
概括以下:
故障現象 : 沒法鏈接 mysql
===================================================================================
錯誤信息 :ERROR 2003 (HY000): Can't connect to MySQL server on 'hostxxxxx' (10061)
緣由 : mysqld數據庫服務沒有啓動。
檢查 :在windows 的任務管理器,或者 unix/linux 下 ps -aux | grep mysql 看一下。確認服務已經啓動。
處理 :啓動mysqld 服務
===================================================================================
錯誤信息 :ERROR 1130: Host xx.xx.xx.xx is not allowed to connect to this MySQL server
緣由 : mysql服務器沒有賦予此客戶端遠程鏈接的權限。
檢查 :在mysql服務器本地查詢mysql庫裏user表對應的host是否包含客戶端機器的IP(%爲不限制IP容許遠程鏈接)。
處理 :修改mysql庫下的user表:update user set host = '%' where user ='XXX';flush privileges;
===================================================================================
錯誤信息 :ERROR 1045 (28000): Access denied for user 'usera'@'localhost' (using password:YES)
緣由 : 用戶帳號並未建立
檢查 :以管理員ROOT登陸後,show grants for 'usera'@'localhost'; 或者 select user from mysql.user; 確認用戶帳號是否存在。
處理 :建立用戶帳號。
===================================================================================
錯誤信息 :ERROR 2003 (HY000): Can't connect to MySQL server on 'hostxxxxx' (10061)
緣由 : mysqld 客戶端與服務端端口不一致。
檢查 :在my.ini 設置下服務端口 這種狀況特別是客戶都與遠程服務器端口不一致 很容易出現的問題
處理 :啓動mysqld 服務
===================================================================================
錯誤信息 :ERROR 2002 (HY000): Can't connect to local MySQL server server through socket '/var/lib/mysql/mysql.sock'(111)
緣由 : mysqld的mysql.sock沒在相應的位置。
處理 :1.先查看/etc/rc.d/init.d/mysql status 看看是否啓動
2.改權限 chown -R mysql:msyql /var/lib/mysql
3.修改/etc/my.cnf (注意:先停數據庫)
[mysqld]
datadir=/usr/local/mysql/data
socket=/var/lib/mysql/mysql.sock
[mysql.server]
user=mysql
basedir=/usr/local/mysql
[client]
socker=/var/lib/mysql/mysql.sock
4.啓動數據庫
===================================================================================
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
c.配置
# vi /usr/local/apache/conf/httpd.conf
修改此文件,更改如下指令爲:
DirectoryIndex index.html index.shtml index.cgi index.php index.phtml index.php3
ServerName 12.34.56.78:80 //這裏的ip和端口號視實際狀況而定
Options FollowSymLinks MultiViews //爲安全起見,去掉"Indexes"
找到AddType處,並添加如下2行:
AddType application/x-httpd-php .php .php3 .phtml .inc
AddType application/x-httpd-php-source .phps
vi /usr/local/lib/php.ini 可能要把php.ini 拷到bin目錄下
更改如下指令爲:
register_globals = On
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
個人網頁目錄爲:/var/www/html 與ftp目錄相同
Linux Apache php MySQL 安裝配置(Centos 6.4 yum安裝)
時間:2014-12-11 13:45:10
標籤:style blog http ar color os sp strong on
1、yum準備
1.Yum(全稱爲 Yellow dog Updater, Modified)是一個在Fedora和RedHat以及CentOS中的Shell前端軟件包管理器。
基於RPM包管理,可以從指定的服務器自動下載RPM包而且安裝,能夠自動處理依賴性關係,而且一次安裝全部依賴的軟件包,無須繁瑣地一次次下載、安裝。
2.在安裝軟件時報’Couldn‘t resolve host ‘mirrorlist.centos.org‘
解決:打開文件/etc/resolv.conf在其中添加: (添加DNS解析)
nameserver 114.114.114.114
nameserver 8.8.8.8
nameserver 8.8.4.4
2、apache安裝配置
1.安裝:yum install httpd(版本:2.2.15-39)
2.配置:
httpd配置 vim /etc/httpd/conf/httpd.conf (沒有vim時 用yum安裝一個)
修改兩處:1.Listen 80 ------> Listen 192.168.0.162:80 (IP:端口號)
2.#ServerName www.xxxx.com:80 ------> ServerName 192.168.0.162
ps:配置必重啓應用(/etc/init.d/httpd restart)
防火牆配置 加入80端口的監聽
方法一:編輯配置文件:vim /ect/sysconfig/ipatbles
ps:此方法配置後記得重啓應用:/etc/init.d/iptables restart
方法二:命令行加入:iptables + 配置語句(eg:ipatable -A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT)
ps:此方法是一次性的並無真正的在配置文件中加入語句,重啓應用時會讀取配置文件,改添加失效
3.測試
配置文件中有一行 DocumentRoot "/var/www/html" 表示html文件須要在該目錄下才能夠被瀏覽器讀取
1.在該目錄下新建vim /var/www/html/index.html
2.在裏面寫入<h1>This is a test <h1>
3.在瀏覽器地址處寫入本機IP地址(顯示以下表示成功)
3、PHP安裝配置
1.安裝:yum install php(版本:5.3.3-40)
2.配置Apache能識別php文件
vim /etc/httpd/conf/httpd.conf
在DirectoryIndex index.html index.html.var後面加入 index.php 注:必定要加在後面,不然會出錯
ps:重啓http
3.測試(Apache+php)
在/var/www/html/目錄下新建index.php
在裏面寫入<?php phpinfo(); ?>
在瀏覽器地址欄輸入:http://192.168.0.162/index.php (顯示以下表示成功)
4、MySQL安裝配置
1.安裝:yum install mysql-server(版本:5.1.73-3)
2.啓動mysql服務設置密碼
啓動:/etc/init.d/mysqld start
設置密碼: mysqladmin -uroot password 輸入密碼(eg: 888admin)
3.進入mysql
方法一:mysql -uroot -p 密碼(eg:888admin)
方法二:mysql -uroot -p 回車 。而後提示Enter password: 再輸入密碼(此方法更安全,顯示以下表示成功)
4.讓php支持MySQL
yum install php-mysql php-pdo
ps:若php與Apache連接的方式爲靜態此時應重啓httpd(相關資料:http://www.it165.net/admin/html/201403/2603.html)
5.測試(Apache+php+MySQL)
第一步:新建測試文件 /var/www/html/test.php
第二步:寫入測試內容:
<?php
$con = mysql_connect("localhost","root","888admin");
if (!$con) {
echo ‘false‘;
}else{
echo ‘win‘;
}
?>
第三步:php /var/www/html/test.php 返回win
在瀏覽器上運行(顯示結果以下表示成功)
http://www.cnblogs.com/hssbsw/p/4345723.html