搭建 LNMP 环境

腾讯云
入门
0 个任务
剩余 3 个名额

你还可以 创建 或者 使用已有 云主机不限时上机

实验内容

LNMP是建立web应用的平台,是Linux、NGINX,MySQL(有时也指MariaDB,数据库软件) 和PHP(有时也是指Perl或Python) 的简称。

首次可免费使用云主机 45 分钟 ,到期后云主机将被重置并退库,若想保留成果请及时留用。

实验资源

云服务器

软件环境

CentOS 6.8 64 位

目录

# 搭建 LNMP 环境 ## 搭建 Nginx 静态服务器 > <time>5min ~ 10min</time> ### 安装 Nginx 使用 `yum` 安装 Nginx: ``` yum install nginx -y ``` 修改 [/etc/nginx/conf.d/default.conf][edit-default],去除对 IPv6 地址的监听[:question][ipv6],可参考下面的代码示例: ```conf /// <example verb="edit" file="/etc/nginx/conf.d/default.conf" /> server { listen 80 default_server; # listen [::]:80 default_server; server_name _; root /usr/share/nginx/html; # Load configuration files for the default server block. include /etc/nginx/default.d/*.conf; location / { } error_page 404 /404.html; location = /40x.html { } error_page 500 502 503 504 /50x.html; location = /50x.html { } } ``` 修改完成后,启动 Nginx: ``` nginx ``` 此时,可访问实验机器外网 HTTP 服务([http://${runtime.vars.cvmIpAddress}][])来确认是否已经安装成功。 将 Nginx 设置为开机自动启动: ``` chkconfig nginx on ``` > <bubble for="ipv6"> > CentOS 6 不支持 IPv6,需要取消对 IPv6 地址的监听,否则 Nginx 不能成功启动。 > </bubble> > <locate for="edit-default" path="/etc/nginx/conf.d/default.conf" hint="修改默认 Nginx 配置" /> > <checker type="output-contains" command="ls /etc/nginx/" hint="安装 Nginx"> > <keyword regex="nginx.conf" /> > </checker> > <checker type="output-contains" command="netstat -nltp" hint="启动 Nginx"> > <keyword regex="LISTEN" /> > <keyword regex="80" /> > </checker> ## 安装 MySQL 数据库服务 > <time>5min ~ 10min</time> ### 安装 MySQL 使用 `yum` 安装 MySQL: ``` yum install mysql-server -y ``` 安装完成后,启动 MySQL 服务: ``` service mysqld restart ``` 设置 MySQL 账户 root 密码:[:question][password] ``` /usr/bin/mysqladmin -u root password '${runtime.vars.allocatedPassword}' ``` 将 MySQL 设置为开机自动启动: ``` chkconfig mysqld on ``` > <bubble for="password"> > 下面命令中的密码是教程为您自动生成的,为了方便实验的进行,不建议使用其它密码。如果设置其它密码,请把密码记住,在后续的步骤会使用到。 > </bubble> > <checker type="output-contains" command="mysql --version" hint="安装 MySQL"> > <keyword regex="\d" /> > </checker> > <checker type="output-contains" command="mysql -u root --password=${runtime.vars.allocatedPassword} -e &quot;select 'success' as ''&quot;" hint="使用生成的密码无法连接 MySQL,如果你已使用自己的密码完成了设置,请直接进入下一步。"> > <keyword regex="success" /> > </checker> ## 搭建 PHP 环境 > <time>5min ~ 10min</time> ### 安装 PHP 使用 `yum` 安装 PHP:[:question][php] ``` yum install php php-fpm php-mysql -y ``` 安装之后,启动 PHP-FPM 进程: ``` service php-fpm start ``` 启动之后,可以使用下面的命令查看 PHP-FPM 进程监听哪个端口 [:question][port] ``` netstat -nlpt | grep php-fpm ``` 把 PHP-FPM 也设置成开机自动启动: ``` chkconfig php-fpm on ``` > <bubble for="php"> > CentOS 6 默认已经安装了 PHP-FPM 及 PHP-MYSQL,下面命令执行的可能会提示已经安装。 > </bubble> > <bubble for="port"> > PHP-FPM 默认监听 9000 端口 > </bubble> > <checker type="output-contains" command="netstat -nlpt" hint="PHP-FPM 进程未启动"> > <keyword regex="php-fpm" /> > </checker> ## 配置 Nginx 并运行 PHP 程序 > <time>5min ~ 10min</time> ### 配置 Nginx 在 [/etc/nginx/conf.d][edit-nginx] 目录中新建一个名为 php.conf 的文件,并配置 Nginx 端口 ,配置示例如下: ```conf /// <example verb="edit" file="/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; } } ``` 修改配置完成后,重启 nginx 服务 ``` service nginx restart ``` 这时候,我们就可以在[/usr/share/php][info] 目录下新建一个 info.php 文件来检查 php 是否安装成功了,文件内容参考如下: ```php /// <example verb="edit" file="/usr/share/php/info.php" /> <?php phpinfo(); ?> ``` 此时,访问 [http://${runtime.vars.cvmIpAddress}:8000/info.php][] 可浏览到我们刚刚创建的 info.php 页面了 > <locate for="edit-nginx" path="/etc/nginx/conf.d" hint="新建一个名为 php.conf 的文件" /> > <locate for="info" path="/usr/share/php" hint="在这里右键新建一个文件,并命名为 info.php" /> > <checker type="output-contains" command="ls /usr/share/php" hint="创建 info.php 文件"> > <keyword regex="info.php" /> > </checker> > <checker type="output-contains" command="curl http://127.0.0.1:8000/info.php --silent" hint="打开 info.php 页面"> > <keyword regex="info" /> > </checker> ### 完成实验 恭喜!您已经成功完成了搭建 LNMP 服务器的实验任务。