vm虛擬機上安裝apache+php+ftp+mysql

我在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配置端口訪問規則 - 容許外網訪問 3306

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

相關文章
相關標籤/搜索