Toggle navigation


LNMP多版本镜像(PHP5.4/5.5/5.6/7.0)

Version 5.4/5.5/5.6/7.0

由Websoft9提供的LNMP集成包是全球最经典的PHP运行环境,预装了Nginx,MySQL,PHP,PHPMyAdmin,9Panel以及其他必要组件,帮助您在Linux下快速的安装、部署PHP应用程序。

LNMP(Linux-Apache-MySQL-PHP)网站架构是目前国际上最流行的Web框架之一, 有Linux下WEB应用的黄金组合之称。该框架包括:Linux操作系统,Apache网络服务器, MySQL数据库,PHP编程语言。


本文档适用于通过主流云市场购买和部署了Websoft9镜像的用户,文档内容重点指导用户进行安装配置、系统基本操作和常见运维问题处理。

主流云平台包括:阿里云、腾讯云、百度云、华为云、Azure、青云

Websoft9的镜像由运行环境、数据库和运维面板三个部分组成,以最新版本镜像为例包括:

运行环境(PHP  5.4/5.5/5.6/7.0,Nginx 1.21.1)
Nginx配置文件:/etc/nginx/nginx.conf
Nginxi 虚拟主机配置文件:/etc/nginx/conf.d
PHP路径:/opt/remi/ 下分别对应PHP版本5.4/5.5/5.6/7.0
PHP配置文件:/opt/remi/php{xx}/root/etc/php.ini(xx对应php版本)
php-fpm配置文件: /opt/remi/php{xx}/root/etc/php-fpm.conf
php-fpm配置文件: /opt/remi/php{xx}/root/etc/php-fpm.d/www.conf
日志文件目录:/var/log/nginx
数据库(MySQL5.6,phpMyAdmin4.4.15.10)
MySQL数据目录: /data/mysql
MySQL配置文件: /etc/my.cnf
数据库账号:root/123456
数据库面板访问路径:http://公网ip/phpmyadmin
运维面板(9Panel)
9Panel是Websoft9根据镜像用户的习惯和技术能力而研制的轻量级面板,以帮助用户快速掌握程序安装和运维工作,并获取技术支持
访问路径:http://ip/9panel
  1. 镜像需要与服务器配套使用,获取Websoft9的镜像有两种方式:
    方式一:若没有可用的云服务器,登录主流云厂商的云市场,找到由Websoft9提供的“LNMP多版本”相关免费镜像,点击“购买”(同时会配套购买云服务器,若只打算试用请选择“按量”方式购买,实现按小时使用,接近免费)
    方式二:登录到云厂商的控制面板,找到可用的云服务器,通过更换系统盘(重装镜像)的方式
  2. 待镜像购买或更换完成后,镜像会自动安装到配套的云服务器上,当云服务实例处于“运行中”后,通过浏览器访问网址
    http://服务器公网IP/9panel,正常会出现如下界面:
  3. 如果浏览器访问以上网址没有任何反应,请检查您的安全组设置,确保80端口是开放的。

应用程序安装、使用和维护中需要用到二种账户:

1、MySQL数据库默认账号和密码:root/123456,管理地址:http://ip/phpmyadmin


2、Linux服务器操作系统账号和密码

  • 账号:root
  • 密码:是安装镜像的时候客户自行设置的,若不记得此密码,请登录云服务器后台,修改服务器密码,重启后生效
  • 登录:下载一个putty工具,通过root账号登录,参考(服务器通用文档-Linux远程管理与FTP

LNMP新增网站非常容易,在新增网站之前请提前考虑如下三个可能的选项:

  • PHP版本选择
  • 安装一个网站or安装多个网站
  • 是否需要配置域名(国内网站没有备案的域名无法使用)

 

方式一:服务器只安装一个网站

当前镜像的网站默认目录是/data/wwwroot/default,如果您打算此服务器上只部署一个网站或应用,建议采用此方式:

  1. 通过SFTP工具,将网站源文件上传到此目录
  2. 如果没有可用域名,请直接通过http://公网ip 的方式来访问应用
  3. 如果有可用的域名,请完成《域名配置》后通过http://域名 的方式来访问应用

方式二:服务器安装多个网站

例如,您打算安装WordPress程序,您将WordPress文件夹上传到/data/wwwroot/default目录下

访问网站的方式:http://公网ip地址/wordpress即可打开WordPress程序。

如果需要给WordPress程序配置域名来访问,怎么办?

  1. 使用SFTP打开:/etc/nginx/conf.d目录
  2. 新建一个.conf文件,
  3. Websoft9的镜像支持部署多个应用程序(网站),具体操作如下:
    1. 通过SFTP将网站文件上传到/data/wwwroot/default/目录下面,假设应用程序目录命名为“mysite”
    2. 修改mysite文件夹的权限和用户组(参考:如何修改Linux文件系统的权限?
    3. 通过域名控制台将域名解析到服务器公网IP(如果没有域名可以跳过3、4)
    4. 通过SFTP打开 /ect/httpd/conf.d目录,新增一个conf文件,假设名称为www.mydomain.com.conf,将下面内容拷贝到文件中,根据你的实际情况进行修改、保存。
    <VirtualHost *:80>
    ServerName www.mydomain.com
    ServerAlias mydomain.com
    DocumentRoot "/data/wwwroot/default/mysite"
    ErrorLog "/var/log/httpd/www.mydomain.com_error_apache.log"
    CustomLog "/var/log/httpd/www.mydomain.com_apache.log" common
    <Directory "/data/wwwroot/default/mysite">
    Options Indexes FollowSymlinks
    AllowOverride All
    Require all granted
    </Directory>
    </VirtualHost>

    如果没有域名或不打算通过域名访问,3、4步骤跳过

    重启http服务后,再通过http://www.mydomain.com或http://ip/mysite访问新网站,如何配置没有问题,您会成功打开网站

    说明:Apache的配置文件规则和语法非常灵活,以上仅供参考

管理Linux系统,只需要用到两个工具即可满足大部分使用场景

  • WinSCP,可视化界面的SFTP工具,90%的Linux操作均可通过它来实现(下载WinSCP
  • Putty,远程登录&命令操作软件,需要用到命令操作的时候使用(下载Putty

具体参考:

当前镜像的默认版本是PHP7.0,如何使用其他版本呢?只需要三步:

  1. 修改/etc/nginx/conf.d/vhost.conf文件的fastcgi_pass设置,参考:
    fastcgi_pass unix:/dev/shm/php-cgi70.sock; //cjg70代表7.0版本,如下您打算使用5.6版本,请修改为cjg56。同理54/55
  2. 修改/etc/nginx/conf.d/9panel文件的fastcgi_pass设置,参考:
    fastcgi_pass unix:/dev/shm/php-cgi70.sock; //cjg70代表7.0版本,如下您打算使用5.6版本,请修改为cjg56。同理54/55
  3. 重新启动服务或服务器

9Panel是Websoft公司自主研发的快捷面板工具,9Panel面板主要是集成数据库管理工具、系统运维工具、文档和支持服务入口,重点在于连接知识库和服务,几乎不会占用系统资源,也不会对系统文件进行任何修改。

通过chrome或Firefox浏览器访问:http://ip/9panel,即可进入面板页面。如果没有完成应用程序的安装,请根据面板的提示完成应用程序的安装。

Websoft9镜像默认安装了可视化MySQL管理工具phpMyadmin,其安装目录: /usr/share/phpMyAdmin。

如何使用PhpMyAdmin数据库?

  1. 通过本地Chrome或Firefox浏览器,访问:http://服务器公网IP/9panel
  2. 点击左侧菜单的“数据库管理”项,会进入“登录PhpMyAdmin”链接
  3. 选择您需要的语言,然后输入root和对应的密码,然后登录到系统中

常见的数据库相关操作包括:
修改root密码、创建数据库、创建用户和权限设置、导入和导出等,具体参考《MySQL文档-PhpMyAdmin常见操作》

上传一个扩展或模板文件夹,建议修改Linux系统的权限以便能够正常访问。网站的权限设置值建议如下:
file 644, folder 755 ,用户和用户组分别是 nginx : nginx

方法一:putty登录命令行方式(推荐)

~# chown -R nginx.nginx /data/wwwroot/default/
~# find /data/wwwroot/default/ -type d -exec chmod 755 {} \;
~# find /data/wwwroot/default/ -type f -exec chmod 644 {} \;

方法二:WinSCP右键修改,参考:使用WinSCP设置文件夹权限

域名设置分为两个步骤:

步骤1:域名控制台解析域名

如果您的域名备案(大陆之外无需备案),可以通过云厂商的域名控制台进行域名解析,操作如下:

  1. 登录域名控制台->域名解析,进入解析设置界面(以阿里云为例)
  2. 增加一条A记录,主机记录那里填写二级域名的前缀(如www,shop,test等)或通配符@,记录值填写您的服务器公网ip地址,保存
  3. 域名解析成功,等待解析生效(不同的厂商解析生效时间不一样,1分钟-24小时不等)

注意:解析生效之后,本地访问可能由于缓存问题导致仍然没有生效,请清空浏览器缓存,然后通过CMD命令行刷新本地DNS操作

步骤2:修改虚拟主机配置文件(非必要)

请修改根据不同的环境选择对应的操作方式,请使用SFTP修改/ect/httpd/conf.d/vhost.conf文件,将其中的ServerName的值替换成你的域名信息

server_name default.com www.default.com; #绑定主域名、副域名default.com 和 www.default.com

修改完成后重启http服务或重启服务器后生效

说明:如果你计划在服务器上增加更多应用,本步骤是必要的

当应用程序进行大版本升级的时候,可能会需要增加某种php扩展。

安装php扩展的步骤如下:

1、利用yum search查找扩展包

~# yum search memcached php
php-pecl-memcached - memcached module for php5

2、使用yum install安装扩展包

~# yum install -y php-pecl-memcached
Reading package lists... Done
Reading state information... Done

使用PHP应用程序的时候,php组件的启用或停用、邮件设置、上传文件大小等控制都会涉及修改php配置文件。本镜像php配置文件的安装目录为: /opt/remi/php{xx}/root/etc/php.ini(xx对应php版本)

下面是一些与安装相关的php参数:

  • memory_limit – Minimum: 256M   //内存最大限制值
  • upload_max_filesize – Minimum: 20M  //上传文件最大值
  • post_max_size – Minimum: 20M   //通过POST提交数据的最大值
  • max_execution_time: At Least 120 Recommended: 300  //PHP最大执行时间

需要修改上述参数的值,只需要通过SFTP打开php.ini,修改(“#”在前的项表示没有启用,请根据实际情况删除“#”),然后保存

保存后还需要重启http服务才能生效,重启命令如下:

~# systemctl restart nginx
~# systemctl restart phpxx-php-fpm //xx为对应的php版本号,例如54代表5.4版本,70代表7.0版本

如果您不会使用命令操作,通过云服务器后台去重启服务器也可以达到同样的效果。

实例:如何修改上传文件大小限制?

通过SFTP修改php.ini 如下的部分

; Maximum size of POST data that PHP will accept.
post_max_size = 16M
; Maximum allowed size for uploaded files.
upload_max_filesize = 16M

保存后,重启http服务

~# systemctl restart nginx
~# systemctl restart phpxx-php-fpm //xx为对应的php版本号,例如54代表5.4版本,70代表7.0版本

如果您不会使用命令操作,通过云服务器后台去重启服务器也可以达到同样的效果。

实例:如何修改系统最大响应时间?

我们在运行应用程序的时候,常常会等待很长的时间之后,却收到这样的错误提示 “Maximum execution time of 30 seconds exceeded”。这种情况下就需要通过修改the max_execution_time(最大执行响应时间)的值来解决这个问题。

方法一(推荐): 通过SFTP修改php.ini 如下的部分

; Maximum execution time of each script, in seconds
; http://php.net/max-execution-time
; Note: This directive is hardcoded to 0 for the CLI SAPI
max_execution_time = 90
; Maximum amount of time each script may spend parsing request data. It's a good
; idea to limit this time on productions servers in order to eliminate unexpectedly
; long running scripts.

方法二: 如果应用程序支持 .htaccess,请修改它:

<IfModule mod_php5.c>
php_value max_execution_time 90
</IfModule>

保存后,重启http服务

~# systemctl restart nginx
~# systemctl restart phpxx-php-fpm //xx为对应的php版本号,例如54代表5.4版本,70代表7.0版本

如果您不会使用命令操作,通过云服务器后台去重启服务器也可以达到同样的效果。

502错误分析及处理

Nginx应用服务器出现502错误的原因很多,但是基本都是资源不够造成的。

包括:内存不足,CPU超标,硬盘满了,另外可能也有程序导致php-fpm停止运行。对应的的解决办法:

  • 内存和CPU超标,通过重启一下php-fpm 和nginx mysql 三个服务可以临时解决,如果是1核1g的配置且经常出现502错误的话,建议升级
  • 硬盘满了的话,会导致MySQL停止服务,需要进行硬盘扩容
  • php-fpm服务停止或者报错也会出现502,需要重启php-fpm

 

使用本镜像,可能需要用到的命令如下:

~# cd /data/wwwroot  //进入网站根目录
~# reboot //重启服务器
~# wget url  //下载url对应的文件
~# unzip xx.zip //解压xx.zip文件到当前目录

~# systemctl restart nginx  //重启nginx
~# systemctl restart phpxx-php-fpm //xx为对应的php版本号,例如54代表5.4版本,70代表7.0版本
~# systemctl restart mysqld //重启mysql数据库

~# yum update -y //升级所有包同时也升级软件和系统内核,-y当安装过程提示选择全部为"yes"
~# yum upgrade -y //只升级所有包,不升级软件和系统内核,-y当安装过程提示选择全部为"yes"

~# systemctl stop phpxx-php-fpm //关闭某个版本,xx为版本号,例如php56
~# systemctl start phpxx-php-fpm //启动某个版本,xx为版本号,例如php56
~# systemctl restart phpxx-php-fpm //重启某个版本,xx为版本号,例如php56

~# systemctl enable php70-php-fpm  //设置php为开机启动
~# systemctl disble php70-php-fpm  //关闭php开机启动

本文档由长沙网久软件有限公司原创,为了保证文档的严肃性和可用性,任何人不得盗用或修改后二次分发。需要的朋友们转载请标注来源,否则我们保留给予法律追究的权利。

我们会定期更新文档,请访问在线文档以获取最新版本

本文档在线地址:http://www.websoft9.com/xdocs/lnmpmulti-image-guide
合作或技术支持:http://www.websoft9.com