在Linux環境下,搭建LNMP環境,你們之前或多或少都作過相關的操做,可是隨着軟件的更新,PHP,MySQL不斷的升級,以往不少比較老的教程,都已經沒法完成這個搭建環境的任務了,今天偶然有興趣在最新的Ubuntu18.04上搭建LNMP環境,原本感受挺容易的,可是在實際操做過程當中,遇到一個個坑,真是讓人啼笑皆非,因此寫這篇心得,主要是分享在搭建過程當中遇到的一些問題進行了整合,來給後入進行排雷。php
首先展現搭建成功後的頁面mysql
PHP安裝成功nginx
MySQL安裝成功sql
來,如今咱們開始進行搭建數據庫
1.Nginx的安裝vim
Nginx安裝是屬於最簡單的,只須要在命令行執行 瀏覽器
sudo apt-get install nginx
就能自動安裝 Nginx,其中過程當中須要 選擇 Y/n 的選擇Y就好了,當安裝結束後再執行下列代碼,重啓Nginx服務器服務器
sudo service nginx restart
而後經過用Ubuntu自帶火狐瀏覽器訪問 localhost,若是出現Nginx的歡迎頁面,就代碼Nginx安裝成功php7
2:MySQL的安裝spa
因爲我們使用的Ubuntu18.04,若是直接不選MySQL版本的話,則自動安裝最新的MySQL,因此,在這次安裝中,就自動安裝了MySQL5.7;
執行命令以下:
sudo apt-get install mysql-server mysql-client
雖然我看到不少教程上說,在安裝過程當中會出現設定MySQL初始密碼的的步驟,不過我在安裝過程當中,屬實是什麼都沒發生,就是這個,致使後面有些坑的出現。
在安裝完成後,執行下面命令:
mysql -u root -p
而後要求你輸入密碼,若是以前設置,則輸入設置好的。
若是沒設置,就要開始進入下個坑了,出現下列報錯:
ERROR 1698 (28000): Access denied for user 'root'@'localhost'
這個錯誤,簡單的說,就是密碼錯了,可是你沒設置過,怎麼會錯呢,這個就是MySQL自身會設置的隨機密碼的問題了,解決方法就是從新設置新的root密碼,可是問題在於,若是進入MySQL中去。我在這過程當中有兩種方法進入MySQL命令行裏,
第一種以下:
sudo mysql
經過管理員權限,直接進入。
第二種以下:
關閉正在運行的 MySQL : service mysql stop 運行命令: mysqld_safe --skip-grant-tables &
以上兩種方法,若是執行成功,則會成功進入MySQL的命令行中,
而後就開始進行修改root密碼的操做了:
mysql> use mysql; mysql> update mysql.user set authentication_string=PASSWORD('新密碼'), plugin='mysql_native_password' where user='root';
mysql>flush privileges;
這一步主要是在設置新密碼的時候,順便把用戶root的plugin進行修改,修改成默認的 mysql_native_password,而後在刷新權限設置。
在執行成功後,重啓MySQL,而後再執行一次上面鏈接數據庫命令:
sudo service mysql restart
mysql -u root -p
我這樣解決掉MySQL的使用問題的。
3:PHP7.2.5安裝
我直接執行以下命令:
sudo apt-get install php7.2 php7.2-fpm php7.2-mysql
三個命令一塊兒執行,直接把php相關的各類軟件和拓展直接安裝成功。
4:配置Nginx解析PHP
首先修改你Nginx配置文件,執行命令:
sudo vim /etc/nginx/sites-available/default
修改41行以下圖:
修改56行到63行以下:
而後執行命令,重啓Nginx:
sudo service nginx restart
接下來咱們修改PHP相關配置文件:
sudo vim /etc/php/7.2/fpm/pool.d/www.conf
在37行加入替換代碼:
修改以後,咱們重啓php7.2-fpm
sudo service php7.0-fpm start
而後我們在/var/www裏面新建info.php文件
info.php代碼以下:
而後在瀏覽器打開:localhost/info.php 效果以下:
而後我們在/var/www裏面新建mysql.php文件,
mysql.php代碼以下:
<?php echo '<h1>Page loaded with PHP!</h1>'; $conn = mysqli_connect('localhost', 'site_admin', 'your_password'); if(!$conn){ die('<h2>Error: </h2>' . mysqli_connect_error()); }else{ echo '<h2>Successfully Connected to MySQL Database!</h2>'; } ?>
而後在瀏覽器打開:localhost/mysql.php 效果以下:
自此,我們的搭建環境,大功告成,萬里長征中的一小步,但願你們能得到經驗,若是有多的疑問,你們在互相交流一下。