在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 效果以下:
自此,我们的搭建环境,大功告成,万里长征中的一小步,但愿你们能得到经验,若是有多的疑问,你们在互相交流一下。