[Linux] PHP程式員玩轉Linux系列-lnmp環境的搭建

來源:互聯網
上載者:User

標籤:params   使用者名稱   stat   file   技術   安裝使用   linux系統   預設   通過   

1.PHP程式員玩轉Linux系列-怎麼安裝使用CentOS

在平常的工作中,我作為PHP程式員經常要搭建一下環境,這個環境就是Linux系統下安裝nginx,php,mysql這三個軟體,對軟體進行配置,然後在瀏覽器上能夠正常開啟運行查看項目。CentOS中安裝軟體有好幾種方式,我經常用的是包安裝方式,因為這種非常簡單一句命令就能安裝成功,這也是與windows下安裝軟體最大的不同點。包安裝方式就一個關鍵單詞就是yum。

 

解決找不到nginx包的問題

我先安裝一下web伺服器nginx,按好這個軟體,他就可以監聽80連接埠,綁定網域名稱,提供web服務,就能在瀏覽器訪問我們的項目。我使用命令 yum install nginx ,此時報錯No package nginx available,這是沒有這個包啊,這個時候需要安裝一下企業Linux擴充包epel,使用命令yum install epel-release,然後從新試一下安nginx,這個時候就可以安裝了,並且解決了依賴問題。使用service nginx start開啟nginx

yum install epel-releaseyum install nginxservice nginx start

 

解決web服務無法ip訪問的問題 

此時我開啟windows的瀏覽器,訪問我上一篇設定的地址:http://192.168.2.100 ,無法訪問到,遇到這種情況,我先使用ps命令查看一下nginx的進程是否開啟,然後使用netstat命令查看一下80連接埠是否監聽

ps aux|grep nginxnetstat -altupn|grep 80

這兩個命令查看後發現都是正常的,那應該是防火牆給阻攔了,我使用service iptables stop 關閉掉了防火牆,這時候訪問ip,nginx的測試頁面就出現了,說明確實是防火牆問題,我要開放防火牆的80連接埠,iptables的開放連接埠設定檔是/etc/sysconfig/iptables,我複製了它內建的那條22連接埠的規則,改成80,儲存後,service iptables start,這個時候訪問也是正常的了。

綁定網域名稱

我想通過網域名稱來訪問這個網站,比如我訪問http://www.qingguow.cn,可以查看到伺服器上的網站目錄,這個時候就要配置nginx來綁定網域名稱了。進入目錄/etc/nginx/conf.d,複製內建的設定檔virtual.conf,改成了www.qingguow.cn.conf,注意尾碼一定要是.conf,編輯這個設定檔,重啟一下nginx。

server {    listen       80;    server_name  www.qingguow.cn;    location / {        root   /usr/local/web;        index  index.html index.htm;    }}

我在/usr/local/web目錄下建立了個index.html的檔案,裡面隨便寫了一句話,修改一下windows的host檔案,把網域名稱指向到我的虛擬機器ip

192.168.2.100  www.qingguow.cn

此時我直接存取網域名稱就能看到剛才的那個index.html的檔案了,瀏覽器也會提示你這個網域名稱被重新導向了

此時我可以去看下nginx的訪問和錯誤記錄檔,預設是/var/log/nginx/access.log,使用tail -f這個命令,可以即時監看這個記錄檔

tail -f /var/log/nginx/access.log ,這個可以協助我知道,此時nginx確實是運行正常的。

 

安裝並配置PHP

我在剛才的目錄下建立了個index.php的檔案,直接存取這個檔案,瀏覽器會彈出下載框,檔案被直接下載了,這個時候就要安裝PHP了

yum install php#查看一下版本php -v

 這個版本還是PHP 5.3已經非常老了,稍後我會去寫升級PHP。這個時候PHP已經安裝成功了,但是還沒有和nginx進行搭配起來,還需要安裝php-fpm

yum install php-fpm#開啟php-fpmservice php-fpm start

此時php-fpm已經開啟了,並且預設監聽9000連接埠,配置nginx來支援PHP,編輯www.qingguow.cn.conf,改成如下設定檔。設定檔中應該注意這樣幾點:

1. root指令提到location指令外面來,解決file not found錯誤

2. fastcgi_pass指令,nginx串連fastcgi

3. fastcgi_param SCRIPT_FILENAME指定這個參數,也是解決file not found錯誤

4. file not found錯誤時,nginx的error.log錯誤記錄檔是FastCGI sent in stderr: "Primary script unknown",搜尋這個就能找到解決方案

5. 遇到錯誤時,一定要看錯誤記錄檔,然後再去對症搜尋。

 

server {    listen       80;    server_name  www.qingguow.cn;    root   /usr/local/web;    location / {        index  index.html index.htm index.php;    }    location ~ \.php {        fastcgi_pass   127.0.0.1:9000;#指定FastCGI伺服器監聽連接埠與地址        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;#指定指令碼的路徑        include fastcgi_params;#載入一些參數,這個檔案已經存在了    }}

建立一個index.php的檔案,使用phpinfo()函數列印看看php的參數情況,瀏覽器中訪問,是正常的。

 

安裝mysql資料庫

接下來我要再安裝上mysql資料庫,這個我就能使用PHP去串連和使用mysql資料庫了。我要安裝mysql和mysql-server一個是用戶端,一個服務端,預設安上的mysql資料庫,使用者名稱是root,密碼是空,這可不怎麼安全,當然現在這個資料庫只能我們本地去連,無法遠端連線,也沒啥問題,稍後再去處理增加使用者和修密碼的問題。

#安裝用戶端yum install mysql#安裝服務端yum install mysql-server#開啟mysql服務service mysqld start #串連資料庫mysql -hlocalhost -uroot -p

這個時候,lnmp環境就搭完了。 

[Linux] PHP程式員玩轉Linux系列-lnmp環境的搭建

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.