Toggle navigation


LAMP/LNMP/LNMT/LANMP镜像手册(含视频教程)

Version 1.0.0

LANMP(Linux-Apache-Nginx-MySQL-PHP)网站架构是高级的Web框架之一, 该框架包括:Linux操作系统,Apache网络服务器,Nginx网络服务器,MySQL数据库, PHP编程语言,所有组成产品均是免费开源软件,这五种软件组合到一起,成为一个免费、高效的网站服务系统。
LAMP(Linux-Apache-MySQL-PHP)网站架构是目前国际上最流行的Web框架之一, 有Linux下WEB应用的黄金组合之称。该框架包括:Linux操作系统,Apache网络服务器, MySQL数据库,PHP编程语言。
LNMP(Linux-Nginx-MySQL-PHP)网站架构是目前国际上最流行的Web框架之一, 该框架包括:Linux操作系统,Nginx网络服务器,MySQL数据库,PHP编程语言。
LNMT(Linux-Nginx-Tomcat-MySQL-PHP-JAVA)网站架构是全能的Web框架, 该框架包括:Linux操作系统,Nginx网络服务器,Tomcat网络服务器,MySQL数据库,PHP和JAVA编程语言。

欢迎阅读由Websoft9提供的镜像手册,请用户参考文档自助使用镜像软件,该镜像软件已推出视频教程,请参考文档最后的视频教程链接
本文前提: 用户的ECS已经安装Websoft9提供的相应镜像镜像安装后,建议您每日使用快照功能进行备份,以便配置错误后,快速恢复系统。常见新手问题进入,更多的技术支持请访问网址:http://www.websoft9.com/support。

镜像安装后,请耐心等待3-5分钟,待安装成功后,即可使用浏览器打开网址  http://服务器公网IP

部分镜像引导页面格式如下图片:

如果镜像安装后,浏览器无法打开 http://服务器公网IP,请查看FAQ

首页访问正常(首页为Websoft9的使用引导页面),即表示镜像软件安装正常,首页上有此镜像文档的链接。

 

注意:如果是LNMT环境(LNMP,LAMP,LANMP不涉及),因为环境中还包含了Tomcat,tomcat服务器默认访问地址是http://服务器公网IP:8080. 如果8080端口不能访问,请参考“关于Tomcat(仅限LNMT环境)”一节,在云服务器安全组开放8080端口,并且在服务器上开放8080端口。

 

下面的步骤可以跳过,非必须

如果多次尝试登录失败,请参考FAQ

应用软件版本

LNMP 7.X/5.X:Nginx1.10.3,PHP7.X/5.X,MySQL5.X,Redis3.2.6,Memcached1.4.34,Jemalloc4.4.0,Pure-FTPd1.0.43,phpMyAdmin4.4.15.9
LAMP 7.X/5.X:Apache2.4.23,PHP7.X/5.X,MySQL5.X,Redis3.2.6,Memcached1.4.34,Jemalloc4.4.0,Pure-FTPd1.0.43,phpMyAdmin4.4.15.9
LAMP7.X/5.X:Apache2.4.23,PHP7.X/5.X,MySQL5.X,Redis3.2.6,Memcached1.4.34,Jemalloc4.4.0,Pure-FTPd1.0.43,phpMyAdmin4.4.15.10
LNMT 7.X/5.X:Nginx1.10.3,PHP7.X/5.X,MySQL5.X,phpMyAdmin4.4.15.9,Tomcat8/7,JDK7/8
具体版本以镜像产品描述页面为准。如在阿里云的镜像产品页面,一个镜像可能有多个版本,请选择您需要的版本。

说明:

  1. 所有软件基于公有云源码安装,源码编译安装。
  2. 支持PHP多版本自由切换。
  3. 虚拟主机管理方便快捷。
  4. 轻松建立ftp账号。
  5. 在线升级软件版本。
  6. 本地备份和远程备份配置简单。
  7. jemalloc 优化 MySQL 内存管理。

应用软件目录

Nginx目录: /usr/local/nginx                  #LNMP,LANMP
Apache目录: /usr/local/apache            #LAMP,LANMP
Tomcat目录: /usr/local/tomcat            #LNMT

Database目录: /usr/local/mysql or /usr/local/mariadb
Database 数据目录: /data/mysql or /data/mariadb
Database 配置文件: /etc/my.cnf

PHP目录: /usr/local/php
PHP 配置文件目录: /usr/local/php/etc
PHP 主要配置文件: /usr/local/php/etc/php.ini
PHP 扩展配置文件目录: /usr/local/php/etc/php.d

Memcache目录: /usr/local/memcached
Memcached 配置文件: /etc/init.d/memcached

Redis目录: /usr/local/redis
Redis 配置文件: /usr/local/redis/etc/redis.conf

网站文件默认目录: /data/wwwroot/default
phpMyAdmin目录: /data/wwwroot/default/phpMyAdmin
网站日志目录: /data/wwwlogs

服务器公网IP访问对应后台目录/data/wwwroot/default,该目录中包含首页index,Opcache面板,phpinfo,phpmyadmin工具,探针等,这些内容可以选择删除, 但是删除后您将无法使用,建议做好备份.

服务如何启停

Nginx: service nginx {start|stop|status|restart|reload|configtest}   
MySQL: service mysqld {start|stop|restart|reload|status}
PHP: service php-fpm {start|stop|restart|reload|status}         #LAMP环境中没有该服务
Pure-Ftpd: service pureftpd {start|stop|restart|status}
Redis: service redis-server {start|stop|status|restart|reload}
Memcached: service memcached {start|stop|status|restart|reload}
Apache: service httpd {start|stop|status|restart|reload}
Apache: service tomcat {start|stop|status|restart|reload}

以上命令需要使用putty远程登录到服务器,然后执行命令。如:
service mysqld start                #启动mysql
service mysqld stop                   #停止mysql
service mysqld restart           #重新启动mysql
service mysqld status             #查看mysql服务状态

缺省的数据库密码

数据库默认账户/密码:  root/123456

数据库操作可以使用命令行或phpMyAdmin工具,常见操作参考文档: 点此进入

关于Tomcat(仅限LNMT环境)

Tomcat访问地址: http://服务器公网IP:8080

当tomcat服务正常,云控制台上安全组端口也开放了8080端口后,如果还不能访问,请putty远程登录后台服务器,执行命令:
# iptables -I INPUT 4 -p tcp -m state –state NEW -m tcp –dport 8080 -j ACCEPT          #允许 8080  端口
#service iptables save                             #保存 iptables规则
Mirroring_help_ois_17
特别注意:云服务器所在的安全组端口是否开放

Tomcat网页默认根目录: /data/wwwroot/default
Tomcat目录: /usr/local/tomcat
Tomcat脚本目录: /usr/local/tomcat/bin
Tomcat配置文件目录: /usr/local/tomcat/conf
Tomcat服务启停命令: service tomcat {start|stop|status|restart|reload}  

说明:在LNMT环境中,部署JAVA网站和PHP网站类似,java网站请在域名配置中注意选择java语言。

步骤1:创建一个数据库

一般情况下,我们会为每个应用创建一个独立的数据库和用户,所以本节中将介绍如何操作。

1.登陆MySQL:
方法1(推荐): 使用浏览器查看网址 http://服务器公网IP/phpMyAdmin ,打开phpMyAdmin工具。(入口参考环境描述一节的图片)
方法2: 使用putty工具远程登录到服务器后台,通过ssh命令登录数据库:
mysql -uroot –p123456                       #默认用户/密码root/123456

2.创建数据库,为刚创建的数据库创建一个数据库用户,并授权对数据库操作: 方法点此进入

附更多数据库操作参考: 点此进入(建议新用户修改root密码)

步骤2:配置域名

使用putty工具远程登录到服务器后台,通过ssh命令添加虚拟主机

cd   /root/oneinstack               #注意:部分镜像该目录是/data/oneinstack
./vhost.sh                              #注意:如输入错误,请按 Ctrl +删除键

Nginx环境为例(如果是java程序在第一个选项中选择2.use  java即可):
Mirroring_help_ois_9
上图中 directory 为网站根目录,脚本执行后会自动创建,部署网站时请将代码上传到该目录,对应 Nginx  配置文件路径为:/usr/local/nginx/conf/vhost/www.oneinstack.com.conf (www.oneinstack.com  为绑定的域名)
注意:国内服务器须先完成域名备案

Apache环境为例:

如需要多个域名都可以访问该网站,除了主要域名配置外,请在上面选项中的“Do you want to add more domain name”选择y,然后输入其他域名,多个其他域名中间以空格隔开,如example.com aaa.com www.aaa.com

如果配置错误,参考删除虚拟主机方法:
cd   /root/oneinstack
./vhost.sh del
如下图:
Mirroring_help_ois_18

步骤3:创建FTP账户,上传文件并解压

网站文件一般存放到/data/wwwroot/default目录下,上传或管理文件有两种方式:

方法一(推荐):采用SFTP模式,这样无需额外创建FTP用户,可以使用服务器的root账号登录直接管理文件。支持SFTP最常见的软件是WinSCP,具体参考链接

方法二:使用putty工具远程登录到服务器后台,通过ssh命令创建FTP账号:

cd /root/oneinstack                                  #注意:部分早期安装目录:/data/oneinstack
./pureftpd_vhost.sh                                #请勿 bash ./pureftpd_vhost.sh(或者 sh)这样执行

如下图:
Mirroring_help_ois_10

FTP 客户端参考:windows CMD客户端连接FTP方法参考链接

使用FTP将文件上传到网站目录后,请记得解压缩。

步骤4:为网站文件授权

使用putty工具远程登录到服务器后台,通过ssh命令为文件授权:

网站目录权限遵循:文件 644, 文件夹 755 ,权限用户和用户组www
如设置/data/wwwroot中的文件权限,请执行下面 3 条命令:

chown -R www.www /data/wwwroot/
find /data/wwwroot/ -type d -exec chmod 755 {} ;
find /data/wwwroot/ -type f -exec chmod 644 {} ;

 

镜像可以切换PHP版本,包括PHP-7.1,PHP-7.0,PHP-5.6, PHP-5.5,PHP-5.4,PHP-5.3等

注意:版本切换只限于小版本(第三位数字),例如PHP5.5与PHP5.4是大版本,切换是非常困难的

cd /root/oneinstack                          #注意:部分镜像该目录是/data/oneinstack

./upgrade.sh

如下图:

Mirroring_help_ois_12

 

如何卸载

可单独卸载某些项,如不用数据库,可单独卸载数据库

cd   /root/oneinstack                   #注意:部分早期镜像目录:/data/oneinstack
./uninstall.sh                                 #注意备份数据

如下图:

Mirroring_help_ois_13

特别注意:云服务器所在的安全组端口是否开放

默认情况下开通 22(ssh)80、443(Nginx)  21、20000:30000(FTP)

其它端口都拒绝,如下需要允许其它端口,请如下操作(如开启 8080  端口)

# iptables -I INPUT 4 -p tcp -m state --state NEW -m tcp --dport 8080 -j ACCEPT     #允许 8080  端口

# service iptables save                                                              #保存 iptables  规则

如下图:

Mirroring_help_ois_17

默认情况下,为了减少PHP编译时间,提高性能(生产环境强烈开启Opcache),PHP 环境默认加载了 Opcache 模块(PHP5.5、5.6、7.0),关于原理请参考:《深入理解 PHP Opcode 缓存原理》但是这样会出现 PHP 代码更新后,需2~3  分钟才能生效,这样影响工作效率,在网站调试阶段建议您关闭或者每次有代码更新刷新缓存(推荐方法二

方法一:关闭  Opcache

/usr/local/php/etc/php.ini  和 /usr/local/php/etc/php.d目录中相关文件

注销 opcache 相关参数(搜索opcache,前面加分号;),并重启php-fpm或apache服务

方法二:刷新 PHP  缓存

访问 http://公网IP/ocp.php,或者直接访问 http://公网 IP/ocp.php?RESET=1

如下图:

Mirroring_help_ois_16

支持PHP新模块安装,下面举例供参考:

以安装fileinfo扩展为例

cd /root/oneinstack/src  注意:部分镜像该目录是/data/oneinstack/src
tar zxvf php-5.6.21.tar.gz         # 解压已经安装的php版本
cd php-5.6.21/ext/fileinfo
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make && make install
cd /usr/local/php/lib/php/extensions
ls #看到no-debug-non-zts-20131226类似文件夹
cd no-debug-zts-20131226
ls #查看有没有 fileinfo.so,如果有,证明编译成功
echo 'extension = /usr/local/php/lib/php/extensions/no-debug-non-zts-20121212/fileinfo.so' > /usr/local/php/etc/php.d/ext-fileinfo.ini   #加载fileinfo

以安装IMAP扩展为例

以安装 IMAP扩展 为例

[root@iZ94bojtvkpZ /]# yum -y install krb5-devel libc-client libc-client-devel
[root@iZ94bojtvkpZ /]# ln -sv /usr/lib64/libc-client.so /usr/lib/libc-client.so
进入原始目录,找到PHP源代码包解压缩:
[root@iZ94bojtvkpZ /]# cd /root/oneinstack/src/
[root@iZ94bojtvkpZ /]# tar -zxvf php-5.5.36.tar.gz
进入PHP软件扩展目录
[root@iZ94bojtvkpZ /]# cd /root/oneinstack/src/php-5.5.36/ext/imap
[root@iZ94bojtvkpZ imap]# /usr/local/php/bin/phpize
Configuring for:
PHP Api Version:         20121113
Zend Module Api No:      20121212
Zend Extension Api No:   220121212
[root@iZ94bojtvkpZ imap]# ./configure --with-php-config=/usr/local/php/bin/php-config --with-imap=/usr/lib64 --with-imap-ssl --with-kerberos     
[root@iZ94bojtvkpZ imap]# make;make install
[root@iZ94bojtvkpZ etc]# cd /usr/local/php/etc/php.d
[root@iZ94bojtvkpZ etc]# vi imap.ini                                                          #新建imap.ini文件,内容如下
extension = /usr/local/php/lib/php/extensions/no-debug-non-zts-20121212/imap.so
[root@www imap]# service httpd restart                  #重启apache服务

这时候再次通过phpinfo查看php信息,可以看到已经有了imap模块信息:
 

如何挂载云数据盘

wget http://mirrors.linuxeye.com/scripts/auto_fdisk.sh
chmod +x ./auto_fdisk.sh
./auto_fdisk.sh

显示如下图表示挂载成功:
挂载数据盘

如何备份

设置备份参数:
cd /root/oneinstack               #注意:部分早期安装目录:/data/oneinstack
./backup_setup.sh                #设置备份参数
如下图:

Mirroring_help_ois_11

立即备份
cd /root/oneinstack      #注意:部分早期镜像目录:/data/oneinstack
./backup.sh                     #立即备份

设置计划任务自动定时备份:
如:每天凌晨一点备份,注:下面命令请勿重复执行
# echo ‘0 1 * * * cd ~/oneinstack;./backup.sh > /dev/null 2>&1 & ‘ >> /var/spool/cron/root

查看是否备份
查看本地备份:
ls -l /data/backup/

关于 Redis、Memcached

Redis 默认端口:6379

Memcached 默认端口:11211

默认监听地址:127.0.0.1

 

如果增加 Redis  最大内存大小?

vi   /usr/local/redis/etc/redis.conf

maxmemory 1024000000                    #单位字节,默认 1G,可调整

service redis-server restart                     #重启生效

 

如果增加 Memcached  最大内存大小?

vi   /etc/init.d/memcached

CACHESIZE=256                       #单位 M,默认 256M,可调整

service memcached restart          #重启生效

更改监听端口

Redis

vi   /usr/local/redis/etc/redis.conf

bind 127.0.0.1   #改成 bind 0.0.0.0,保存

service redis-server restart            #重启生效

Memcached

vi /etc/init.d/memcached

OPTIONS=”-l 127.0.0.1″  改成 OPTIONS=””,保存

service memcached restart           #重启生效

编译云锁Nginx防护插件

http://bbs.yunsuo.com.cn/forum.php?mod=viewthread&tid=2938

FAQ:httpd启动不了或502错误

镜像安装后,使用浏览器打开网址  http://服务器公网IP,如果出现首页访问不了或502错误,请按如下方法解决:

1、使用putty远程登录到服务器;

2、进行命令操作,见命令:
[root@iZ94bojtvkpZ ~]# service httpd restart
(20014)Internal error (specific information not available): AH00058: Error retrieving pid file logs/httpd.pid
AH00059: Remove it before continuing if it is corrupted. #如果提示出现这个错误,按照下面步骤操作;如没有错误则服务已启动成功
[root@iZ94bojtvkpZ logs]# cd /run
[root@iZ94bojtvkpZ logs]# ls                             #如果pid文件不在该目录,应在/usr/local/apache/logs中
access_log error_log httpd.pid
[root@iZ94bojtvkpZ logs]# mv httpd.pid httpd.pid.bak
[root@iZ94bojtvkpZ logs]# service httpd start

现在,应该可以正常使用浏览器访问了。如果服务正常仍访问不了,请用户检查自己的安全组配置是否正常。

阿里云LAMP/LNMP/LANMP环境视频教程点此进入

腾讯云LAMP/LNMP/LANMP环境视频教程点此进入

LNMT(PHP&JAVA)环境视频教程点此进入