(轉自美團云知識庫Chris)
LNMP是linux、Nginx、MySQL(MariaDB)和php的縮寫,這個組合是最常見的WEB服務器的運行環境之一。本文將帶領大家在CentOS 7操作系統上搭建一套LNMP環境。
本教程適用于CentOS 7.x版本。
在安裝LNMP環境之前,您需要先對CentOS操作系統做一些初始化的工作,可以參考CentOS系統初始化設置。
美團云的CentOS系統模板中配置了內網源,下載速度較快,推薦使用yum
安裝Nginx:
sudo yum install nginx
按照提示,輸入yes
后開始安裝。安裝完畢后,Nginx的配置文件在/etc/nginx
目錄下。使用以下命令啟動Nginx:
sudo systemctl start nginx
檢查系統中firewalld
防火墻服務是否開啟,如果已開啟,我們需要修改防火墻配置,開啟Nginx外網端口訪問。
sudo systemctl status firewalld
如果顯示active (running),則需要調整防火墻規則的配置。
修改/etc/firewalld/zones/public.xml
文件,在zone
一節中增加:
<zone> ... <service name="nginx"/><zone>
保存后重新加載firewalld服務:
sudo systemctl reload firewalld
您可以通過瀏覽器訪問 http://<外網ip地址>
來確定Nginx是否已經啟動。
最后將Nginx設置為開機啟動:
sudo systemctl enable nginx.service
MariaDB是MySQL的一個分支,主要由開源社區進行維護和升級,而MySQL被Oracle收購以后,發展較慢。在CentOS 7的軟件倉庫中,將MySQL更替為了MariaDB。
我們可以使用yum
直接安裝MariaDB:
sudo yum install mariadb-server
安裝完成之后,執行以下命令重啟MariaDB服務:
sudo systemctl start mariadb
MariaDB默認root密碼為空,我們需要設置一下,執行腳本:
sudo /usr/bin/mysql_secure_installation
這個腳本會經過一些列的交互問答來進行MariaDB的安全設置。
首先提示輸入當前的root密碼:
Enter current passWord for root (enter for none):
初始root密碼為空,我們直接敲回車進行下一步。
Set root password? [Y/n]
設置root密碼,默認選項為Yes
,我們直接回車,提示輸入密碼,在這里設置您的MariaDB的root賬戶密碼。
Remove anonymous users? [Y/n]
是否移除匿名用戶,默認選項為Yes
,建議按默認設置,回車繼續。
Disallow root login remotely? [Y/n]
是否禁止root用戶遠程登錄?如果您只在本機內訪問MariaDB,建議按默認設置,回車繼續。 如果您還有其他云主機需要使用root賬號訪問該數據庫,則需要選擇n
。
Remove test database and access to it? [Y/n]
是否刪除測試用的數據庫和權限? 建議按照默認設置,回車繼續。
Reload PRivilege tables now? [Y/n]
是否重新加載權限表?因為我們上面更新了root的密碼,這里需要重新加載,回車。
完成后你會看到Success!
的提示,MariaDB的安全設置已經完成。我們可以使用以下命令登錄MariaDB:
mysql -uroot -p
按提示輸入root密碼,就會進入MariaDB的交互界面,說明已經安裝成功。
最后我們將MariaDB設置為開機啟動。
sudo systemctl enable mariadb
我們可以直接使用yum
安裝PHP:
sudo yum install php-fpm php-mysql
安裝完成后我們將php-fpm啟動:
sudo systemctl start php-fpm
將php-fpm設置為開機啟動:
sudo systemctl enable php-fpm
php安裝完成之后,需要設置一下php session的目錄:
sudo mkdir /var/lib/php/session/sudo chown -R apache:apache /var/lib/php/session/
這時php-fpm已經安裝完畢,但是現在需要配置一下Nginx,在/etc/nginx/conf.d
目錄中新建一個名為php.conf
的文件,其內容為:
server { listen 8000; # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # location ~ /.php$ { root /usr/share/php; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; }}
然后執行以下命令使我們的配置生效:
sudo systemctl reload nginx
以上我們配置了Nginx的8000端口用來測試,如果您在美團云控制臺創建機器時選擇了綁定防火墻,需要檢查該防火墻是否允許8000端口,如果不允許的話,您可以在防火墻設置中新增防火墻,并關聯到該主機。
我們在/usr/share/php
目錄下新建一個名為phpinfo.php
的文件用來展示phpinfo信息,文件內容為:
<?php echo phpinfo(); ?>
我們從瀏覽器打開 http://<外網IP地址>:8000/phpinfo.php
,您就能看到phpinfo信息了,說明我們php環境已經部署成功:
驗證PHP安裝成功后,需要將此phpinfo.php
文件刪除,線上環境盡量不要暴漏使用的軟件版本及路徑信息,以防被入侵者利用。
新聞熱點
疑難解答