Toggle navigation


LAMP镜像手册

Version 5.4/5.6/7.0

Websoft9提供的LAMP运行环境,助你在Linux服务器下快速的安装多个PHP应用程序,省去繁琐的配置工作,事半功倍。

LAMP(Linux-Apache-MySQL-PHP)是全球最流行的Web运行环境组合之一,基于免费、开源软件构建。包括:Linux系统,Apache Web服务器软件,MySQL数据库,PHP语言等四种核心组件以及其他相关辅助组件。Websoft9通过组合、优化和兼容性处理,将所有组件打包成一个高性能、易维护的PHP运行环境解决方案包,保证能够兼容运行绝大部分PHP应用程序。


本文档适用于通过主流云市场购买和部署了Websoft9镜像的用户,文档内容重点指导用户进行安装配置、系统基本操作和常见运维问题处理。 主流云平台包括:阿里云、腾讯云、百度云、华为云、Azure、青云

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

运行环境(PHP 7.0,Apache 2.4.8)
PHP配置文件目录: /etc/php.ini
Apache虚拟主机文件目录: /ect/httpd/conf.d
日志文件目录:/var/log/httpd
数据库(MySQL5.6.3)
MySQL数据目录: /data/mysql
MySQL配置文件: /etc/my.cnf
数据库面板访问路径:http://公网ip/phpmyadmin
运维面板(9panel)
9panel是Websoft9根据镜像用户的习惯和技术能力而研制的轻量级面板,以帮助用户快速掌握程序安装和运维工作
访问路径:http://ip/9panel

主要特点

Websoft对LAMP镜像进行了如下改进:

  1. 基于阿里云提供的Centos7.4(x64) ,安全稳定
  2. PHP采用Remi源保证其稳定和安全,和便于版本更新升级(YUM安装)
  3. MySQL采用MySQL官方源保证其稳定和安全,和便于版本更新升级(YUM安装)
  4. 内置安装Certbot,半自动化部署Let’s Encrypt证书,实现HTTPS
  5. 默认使用SSH自带SFTP代替FTP,保证文件传输的安全性和系统的简洁
  6. 针对apache,MySQL配置参数进行优化(主要针对低配置机器)
  7. 系统补丁自动更新,及时修复系统以及软件漏洞,无需人工操作
  8. 内置Websoft9自主研发的9panel运维面板,帮助您快速掌握程序安装和运维工作

服务器要求

本镜像在云服务器的最低配置(1核CPU1G内存)下即可运行

  1. 镜像需要与服务器配套使用,获取Websoft9的镜像有两种方式:
    方式一:若没有可用的云服务器,登录主流云厂商的云市场,找到由Websoft9提供的“LAMP”相关免费镜像,点击“购买”(同时会配套购买云服务器,若只打算试用请选择“按量”方式购买,实现按小时使用,接近免费)
    方式二:登录到云厂商的控制面板,找到可用的云服务器,通过更换系统盘(重装镜像)的方式
  2. 待镜像购买或更换完成后,镜像会自动安装到配套的云服务器上,当云服务实例处于“运行中”后,通过浏览器访问网址 http://服务器公网IP/9panel,正常会出现如下界面:
  3. 如果浏览器访问以上网址没有任何反应,请检查您的安全组设置,确保80端口是开放的。

应用程序安装、使用和维护中需要用到二种账户:
1、MySQL数据库默认账号和密码:root/123456,管理地址:http://ip/phpmyadmin


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

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

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

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

具体参考:

9Panel是Websoft公司自主研发的快捷面板工具,9Panel面板主要是集成数据库管理工具、系统运维工具、文档和支持服务入口,重点在于连接知识库和服务,几乎不会占用系统资源,也不会对系统文件进行任何修改。 通过chrome或Firefox浏览器访问:http://ip/9panel,即可进入面板页面。如果没有完成应用程序的安装,请根据面板的提示完成应用程序的安装。

LAMP环境中部署网站主要分为5个步骤: 上传网站代码->修改文件系统用户权限->配置域名(非必要)->增加网站对应的数据库(非必要)->完成安装向导

LAMP环境中只部署一个网站还是多个网站、有无域名这两种情况对应的部署操作细节略有不一样,下面分别说明:

场景一:服务器只安装一个网站

  1. 通过SFTP工具,将网站源文件上传到默认的根目录下:/data/wwwroot/default
  2. 通过Putty工具修改用户权限,运行如下一条命令即可:
    ~# chown -R apache.apache /data/wwwroot/default/
  3. 如果没有可用域名,请直接通过http://公网ip  的方式来访问应用
  4. 如果有可用的域名,通过域名控制台将域名解析到服务器公网IP,确保解析成功,然后通过http://域名 的方式来访问应用
  5. 如果在安装向导过程中提示数据库无法自动创建,需要通过http://ip/phpmyadmin 创建数据库

场景二:服务器部署多个网站(无域名)

无域名情况下,以部署两个网站为例,具体操作如下:

  1. 通过SFTP将第一个网站目录上传到/data/wwwroot/default/目录下面,假设应用程序目录命为“mysite1”
  2. 通过Putty工具修改用户权限,运行如下一条命令即可:
    ~# chown -R apache.apache /data/wwwroot/default/
  3. 通过http://ip/mysite1 的方式来访问应用,进入安装向导
  4. 如果在安装向导过程中提示数据库无法自动创建,需要通过http://ip/phpmyadmin 创建数据库

安装第二个网站,操作步骤同样

场景三:服务器部署多个网站(共用一个域名)

以部署两个网站为例,具体操作如下:

  1. 通过SFTP将第一个网站目录上传到/data/wwwroot/default/目录下面,假设应用程序目录命为“mysite1”
  2. 通过Putty工具修改用户权限,运行如下一条命令即可:
    ~# chown -R apache.apache /data/wwwroot/default/
  3. 通过域名控制台将域名解析到服务器公网IP,确保解析成功进入下一步
  4. 通过http://域名 /mysite1 的方式来访问应用,进入安装向导
  5. 如果在安装向导过程中提示数据库无法自动创建,需要通过http://ip/phpmyadmin 创建数据库

安装第二个网站,操作步骤同样

场景四:服务器部署多个网站(多个域名)

以部署其中一个网站为例,具体操作如下:

  1. 通过SFTP将第一个网站目录上传到/data/wwwroot/default/目录下面,假设应用程序目录命为“mysite1”
  2. 通过Putty工具修改用户权限,运行如下一条命令即可:
    ~# chown -R apache.apache /data/wwwroot/default/
  3. 通过域名控制台将域名解析到服务器公网IP,确保解析成功进入下一步
  4. 通过SFTP进入 /ect/httpd/conf.d目录,新增一个conf文件,假设名称为mysite1.conf,将下面内容拷贝到这个配置文件中,将ServerName,ServerAlias,DocumentRoot,ErrorLog,CusomLog,Directory等的“mydomain,mysite1”等相关内容更换成你的实际域名、文件夹名称。
    <VirtualHost *:80>
    ServerName www.mydomain.com
    ServerAlias mydomain.com
    DocumentRoot "/data/wwwroot/default/mysite1"
    ErrorLog "/var/log/httpd/www.mydomain.com_error_apache.log"
    CustomLog "/var/log/httpd/www.mydomain.com_apache.log" common
    <Directory "/data/wwwroot/default/mysite1">
    Options Indexes FollowSymlinks
    AllowOverride All
    Require all granted
    </Directory>
    </VirtualHost>
  5. 重启http服务或重启服务器
    #~ systemctl restart httpd
  6. 通过http://域名 的方式来访问应用,进入安装向导
  7. 如果在安装向导过程中提示数据库无法自动创建,需要通过http://ip/phpmyadmin 创建数据库

安装第二个网站,操作步骤同样

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 ,用户和用户组分别是 apache : apache 方法一:putty登录命令行方式(推荐)

~# chown -R apache.apache /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/xxxx.conf文件(网站放在根目录,xxxx为vhost,多个网站xxxx对应的各个网站的虚拟主机配置文件),将其中的ServerName,ServerAlias的值替换成你的域名信息

Server_name www.mydomain.com  #绑定主域名
ServerAlias mydomain.com #绑定的副域名

修改完成后重启http服务或重启服务器后生效 说明:如果你计划在服务器上增加更多应用,本步骤是必要的

在设置https访问之前,请开启安全组的443端口,如果不开启,https访问是不可用的。

这里提供两种https的配置方案,请根据实际情况选择:

配置方式一:自己准备好了证书

如果您已经申请了证书(请保证证书可用),请参考如下的配置方式:

  1. 将证书上传到服务器证书目录:/data/cert(没有cert目录可以自己新建)
  2. 在/etc/httpd/conf.d目录下新建一个https配置文件,假设命名为mydomain-ssl.conf。
  3. 拷贝下面的https配置文件模板到mydomain-ssl.conf文件中,并保存
    <VirtualHost *:443>
    ServerName  www.mydomain.com
    DocumentRoot "/data/wwwroot/default"
    #ErrorLog "logs/www.mydomain.com-error_log"
    #CustomLog "logs/www.mydomain.com-access_log" common
    <Directory "/data/wwwroot/default">
    Options Indexes FollowSymlinks
    AllowOverride All
    Require all granted
    </Directory>
    SSLEngine on
    SSLCertificateFile  /data/cert/server.crt
    SSLCertificateKeyFile  /data/cert/server.key
    SSLCertificateChainFile  /data/cert/server-ca.crt
    </VirtualHost>
  4. 修改配置文件中相关项,并保存
    ServerName  #主域名,务必修改
    ServerAlias   #副域名,可选项
    DocumentRoot #网站路径,务必填写网站实际路径,例如:/data/wwwroot/default/wordpress
    Directory #同上
    SSLCertificateFile #证书,务必填写网站实际路径
    SSLCertificateKeyFile #证书私钥,务必填写网站实际路径
    SSLCertificateChainFile #证书链(CA文件),务必填写网站实际路径
    注意:证书的后缀一般是:.crt或者 .pem,私钥的后缀是:.key
  5. 重启服务
    #~ systemctl restart httpd

配置方式二:自动生成免费证书

本LAMP环境提供了针对于已经配置好的http网站实现免费的证书自动生成方式,从而实现https访问的解决方案。步骤如下:

  1. 首先假设通过 http://域名/ 可以正常访问网站(假设域名是test.websoft9.cn,配置文件vhost.conf)
  2. 运行certbot命令开始为网站配置证书
  3. 运行成功会有提示

注:当前Cerbot官方提示此插件暂停使用

证书FAQ

证书的申请注意事项:

  • 免费证书只能用于明细域名,例如: buy.example.com,或next.buy.example.com,
  • example.com是通配符域名方式,不能用于申请免费证书
  • 申请证书的时候,请先解析好域名,有些证书会绑定域名对应的IP地址,即一旦申请后,IP地址不能更换,否则证书不可用

本镜像采用Linux自带的包进行安装的,因此升级更新(包括PHP、Apache、Linux更新)非常简单: 以Putty工具登录后,运行下面

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

以PHP为例,假设Linux库中php最新版本是5.6.31,您服务器的php版本php5.6.19,那么升级命令运行后,php版本会升级到5.6.31 本镜像不支持大版本的升级(例如PHP5.6.x–>PHP7.0.x是不可以的)

当应用程序进行大版本升级的时候,可能会需要增加某种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

示例:Redis 安装

1.安装
yum install redis -y
Redis相关配置文件 /etc/redis.conf /etc/redis-sentinel.conf
systemctl start redis 启动redis (start/restart/stop 启动/重启/停止)
systemctl enable redis 设置服务开机自启 (enable/disable 开机自启/关闭自启)

2.PHP 使用 Redis
yum install php-pecl-redis -y
php-redis相关配置 /etc/php.d/*-redis.ini (* 为数字)

3.重启apache/Nginx/php-fpm 查看phpinfo检查是否安装成功

示例:Memcached安装

1.安装
yum install memcached -y
memcached相关配置文件 /etc/sysconfig/memcached (其余参数设置请在OPTIONS=””中添加,详细参数请参考命令 :memcached -h)
systemctl start memcached 启动memcached (start/restart/stop 启动/重启/停止)
systemctl enable memcached 设置服务开机自启(enable/disable 开机自启/关闭自启)

2. PHP 使用 Memcached
yum install php-memcached -y
php-redis相关配置 /etc/php.d/*-memcached.ini(* 为数字)

3.重启apache/Nginx/php-fpm 查看phpinfo检查是否安装成功

使用伪静态有三个步骤:

  1. 确保Rewrite模块(apache模块配置文件:/etc/httpd/conf.modules.d/00-base.conf)已经被加载(去掉LoadModule rewrite_module modules/mod_rewrite.so前面的#)。
  2. 虚拟主机配置文件中增加AllowOverride All
  3. 网站根目录中增加.htaccess文件,并配置伪静态规则

使用PHP应用程序的时候,php组件的启用或停用、邮件设置、上传文件大小等控制都会涉及修改php配置文件。本镜像php配置文件的安装目录为: /etc/php.ini 下面是一些与安装相关的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 httpd

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

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

通过SFTP修改 /etc/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 httpd

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

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

我们在运行应用程序的时候,常常会等待很长的时间之后,却收到这样的错误提示 “Maximum execution time of 30 seconds exceeded”。这种情况下就需要通过修改the max_execution_time(最大执行响应时间)的值来解决这个问题。 方法一(推荐): 通过SFTP修改 /etc/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 httpd

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

clamav 基本使用

1.更新病毒库 命令 : freshclam
2. 扫描:
2.1 扫描所有用户的主目录就使用 clamscan -r /home
2.2 扫描您计算机上的所有文件并且显示所有的文件的扫描结果,就使用 clamscan -r /
2.3 扫描您计算机上的所有文件并且显示有问题的文件的扫描结果, 就使用 clamscan -r –bell -i /

LMD 基本使用

扫描:maldet –scan-all /var #扫描 /var 目录

rkhunter基本使用

更新:rkhunter –update

扫描恶意软件和检查系统基本安全:rkhunter –check

Lynix 基本使用

检测: lynix audit system -Q #检测系统安全问题 并提出一定得建议

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

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

~# systemctl start | stop | restart httpd  //启动、关闭、重启http服务
~# systemctl start | stop | restart mysqld //启动、关闭、重启mysql数据库

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

计算系统一定会出问题,只是问题大小,出问题的时间和概率不同而已,因此备份无比重要,即一定要养成备份的习惯,切莫存在侥幸心理。一个镜像上存在操作系统、运行环境、数据库和应用程序四个组成部分。每个部分都有可能被损坏,因此备份首先要保证有一个全局的备份,然后再考虑局部的备份。

  • 全局的备份。即一个备份方式能够将操作系统、运行环境、数据库和应用程序四个组成部分全部备份下来,这个备份方式是唯一的,即云厂商提供的快照功能。快照功能可以定义备份时间和备份保存时间,可以一键恢复,几乎没有弱点,唯一的不好的地方就是它需要收取费用
  • 操作系统的备份。操作系统是云的组成部分,操作系统的备份即快照备份
  • 运行环境的备份。运行环境与操作系统是融为一体的,即运行环境的的备份即快照备份
  • 数据库备份。使用数据库的导入或导出功能就可以备份数据了。需要注意三点:备份的数据是否可以恢复?自动备份还是手动备份?多久备份一次?
  • 应用程序备份。应用程序的备份相对以上是最简单的,将应用程序的文件夹备份到服务器之外的存储地是最安全有效的。需要注意两点:自动备份还是手动备份?多久备份一次?

总结:快照备份是必须的,其他的备份手段结合起来使用

网站技术日新月异,更新升级是维护工作之一,长时间不升级的程序,就如长时间不维护的建筑物一样,会加速老化、功能逐渐缺失直至无法使用。镜像完整的升级包括:操作系统补丁升级、运行环境补丁漏洞升级和应用程序升级三个部分。

操作系统与运行环境升级(Linux)

Websoft9的镜像可以自动完成操作系统和运行环境的升级,用户只需关注应用程序的升级即可。若计划立即进行升级,可以通过通过Putty运行升级命令:

[root@iZm5ejevtfmojhh6jmr078Z ~]# yum update -y

应用软件的升级

应用软件的升级请根据具体软件而定,可供参考的例子包括:

如果你的镜像下没有9Panel(http://ip/9panel),那么说明您使用的是我们旧版本的镜像,本在线文档不适用于旧版本

需要使用,请参考:旧版本的LAMP镜像文档使用说明

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

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