• ***LANMP镜像手册(Apache&Nginx)-lanmp-oneinstack


    LANMP镜像手册(Apache&Nginx)

    Version PHP7.0.26

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

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


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

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

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

    目录与路径

    应用程序
    应用程序目录: /data/wwwroot/default
    default是应用程序的默认目录,其中的index.html是引导文件,可以删除

    运行环境(PHP 7.0,Apache 2.4.8)
    PHP配置文件目录: /usr/local/php/etc
    PHP 扩展配置文件目录: /usr/local/php/etc/php.d
    Apache目录:/usr/local/apache
    Apache虚拟主机目录: /usr/local/apache/conf/vhost
    日志文件目录:/usr/local/apache/logs

    数据库(MySQL5.6.3)
    Database目录: /usr/local/mysql or /usr/local/mariadb
    Database 数据目录: /data/mysql or /data/mariadb
    Database 配置文件: /etc/my.cnf
    数据库面板访问路径:http://公网ip/phpmyadmin

    运维面板(9panel)
    9Panel是Websoft9根据镜像用户的习惯和技术能力而研制的轻量级面板,以帮助用户快速掌握程序安装和运维工作
    访问路径:http://ip/9panel

    主要特点

    1. 基于系统源码编译安装,细节安全优化,纯命令行,占用系统资源低
    2. Jemalloc优化MySQL内存管理
    3. 交互添加Apache虚拟主机,方便快捷,支持Let’s Encrypt一键设置
    4. 菜单式FTP账号管理脚本,轻松建立ftp虚拟用户
    5. 提供在线MySQL、PHP、Redis、Memcached、phpMyAdmin升级脚本
    6. 提供本地备份和远程备份(服务器之间rsync)、内网阿里云OSS备份功能
    1. 镜像需要与服务器配套使用,获取Websoft9的镜像有两种方式:
      方式一:若没有可用的云服务器,登录主流云厂商的云市场,找到由Websoft9提供的“LANMP”相关免费镜像,点击“购买”(同时会配套购买云服务器,若只打算试用请选择“按量”方式购买,实现按小时使用,接近免费)
      方式二:登录到云厂商的控制面板,找到可用的云服务器,通过更换系统盘(重装镜像)的方式
    2. 待镜像购买或更换完成后,镜像会自动安装,当云服务实例处于“运行中”后,访问网址:http://服务器公网IP/9panel,正常会出现如下界面:
    3. 如果浏览器访问以上网址没有任何反应,请检查您的安全组设置,确保80端口是开放的。

    服务器要求

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

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

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


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

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

    说明:在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)环境视频教程:点此进入

  • 相关阅读:
    【微信小程序】后台访问-net::ERR_CONNECTION_REFUSED 及 不是request合法域名问题 的解决
    【微信小程序】引用FontAwesome字体
    【微信小程序】开发工具使用技巧(七)
    【微信小程序】小程序扩展能力(六)
    【微信小程序】小程序云开发(五)
    【微信小程序】小程序框架(四)
    javascript学习笔记
    HTML&CSS学习笔记
    mysql学习笔记
    c++ primer 笔记 (四)
  • 原文地址:https://www.cnblogs.com/kenshinobiy/p/8995072.html
Copyright © 2020-2023  润新知