標籤: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環境的搭建