技术支持 云市场镜像产品 PHP 运行环境 PHP 运行环境(Nginx)

PHP 运行环境(Nginx)

1.镜像环境里相应软件的安装,是基于阿里云 linux 版的一键安装包源码1.5.5版本,在此基础上修改、优化了相应功能,编译安装完成。

2.在镜像环境中,/root/nginx_phpMultiVersionIMG.zip 压缩包中有安装该镜像环境的脚本。

如果您要在阿里云 CentOS7.2 标准镜像(公共镜像)环境下手动安装此镜像环境,可解压该 zip 包,然后赋予 nginx_phpMultiVersionIMG 文件 777 安装权限。

具体操作可参考以下命令:

 cd /root 
 unzip nginx_phpMultiVersionIMG.zip 
 chmod -R 777 nginx_phpMultiVersionIMG 
 cd /nginx_phpMultiVersionIMG/ 
 ./install.sh 

3.在镜像环境中,/root/nginx_phpMultiVersionIMG 是安装环境的主目录,镜像中的环境是在此目录下编译安装的。

首次进入该软件环境,可以执行 /alidata/init 目录下的优化脚本 optimization-centos.sh。

此脚本可根据 ECS 配置优化 mysql 、 php 和 nginx 的相应参数。

注:此脚本执行后会初始化配置文件,如您已自行修改过配置文件,请谨慎操作。

具体操作可参考如下命令:

 cd /alidata/init                       #进入init目录
 ./optimization.sh                     #执行优化脚本

修改 mysql 密码 默认的 mysql 的用户名/密码以及使用初始化脚本修改后的密码保存在 /alidata/account.log 文件中。

可用以下命令查看:

cat /alidata/account.log

关于如何修改 mysql 的密码,可以参考如下两种方式:

1.一键修改 root 用户密码(此脚本仅支持修改 root 用户密码,如需修改 mysql 数据库的其他用户密码,请参考“2.命令行修改 mysql 密码”):

 cd /alidata/init 
 ./reset_db.sh 

2.命令行修改 mysql 用户密码:

mysqladmin –u用户名 -p老密码 password 新密码

注意:老密码即mysql用户当前的密码,新密码即您修改后的密码。** -p跟老密码之间没有空格。老密码跟“password”之间有空格,password跟新密码之间有空格。

很多用户反馈,用镜像生成系统后,云主机本地能够连接 mysql ,为何远程连接不上 mysql 呢?

这是因为默认安装的 mysql ,出于安全考虑,只允许本地连接。如果您要开启 root 用户远程连接的权限,可执行以下操作:

命令:

 cd /aldata/init                  #进入init目录
 ./remote_connection                #执行脚本

出现以上提示表示开启成功!

如果您想关闭 root 用户的远程连接,恢复 mysql 的默认设置( root 用户只允许本地连接),您可以执行以下操作:

 mysql -uroot -pxxx(mysql的root用户密码)     #登陆数据库
 use mysql                                    #打开mysql数据库
 delete from user where host='%' ;              #将远程连接关闭
 flush privileges;                               #刷新权限表,使配置生效
exit;                                          #退出数据库

备注:您也可以为 mysql 连接添加新的用户名,如添加用户名 test ,密码为123456,权限为%(表示任意ip都能连接)的远程连接用户。命令参考如下:

mysql -uroot -pxxx(mysql的root用户密码) 
 use mysql 
 grant all on *.* to 'test'@'%' identified by '123456'; 
 flush privileges; 
 exit; 

本地 ftp 用户( www 用户账户,密码可通过 cat /alidata/account.log 命令查看)登陆 ftp 时默认登陆到该用户家目录,即 /alidata/www ,但该目录不可上传文件,上传文件需要进入到 /alidata/www/ 的下一级目录下,如 /alidata/www/default 或者在 /alidata/www 目录下创建的任意其他目录下。

1.新建 vsftp 用户

2.删除 vsftp 用户

3.修改 ftp 用户主目录

4.修改 vsftp 密码

软件的主目录:/alidata web主目录:/alidata/www ftp主目录:/alidata/www nginx主目录:/alidata/server/nginx nginx配置文件主目录:/alidata/server/nginx/conf php主目录:/alidata/server/php php配置文件主目录:/alidata/server/php/etc mysql主目录:/alidata/server/mysql mysql配置文件:/etc/my.cnf 日志目录: /alidata/log/nginx 为nginx存放日志主目录 /alidata/log/php 为php存放日志主目录 /alidata/log/mysql 为mysql存放日志主目录 init目录: /alidata/init 为本镜像环境中脚本存放路径。

nginx:

/etc/init.d/nginx start/stop/restart/

php-fpm:

/etc/init.d/php-fpm start/stop/restart/

mysql:

/etc/init.d/mysqld start/stop/restart/

ftp:

systemctl start/stop/restart vsftpd.service

php 版本切换: switch 在 shell 中运行 switch 命令后出现下图:

使用方向键“↑”“↓”进行版本的选择,使用“ tab ”键选择“ Yes ”,“ No ”。

命令行查看当前使用的 php 版本:

php -v

如何卸载镜像环境中安装的软件,可以参考如下命令完成卸载:

 cd /root/nginx_phpMultiVersionIMG 
 ./uninstall.sh 

执行以上卸载,会清理镜像环境的/alidata目录,请卸载前自行备份好相应数据。

教程一:部署网站

1.在使用镜像安装系统后,在 /alidata/init 目录下,我们可以看到部署站点的脚本 vhost.sh。 部署网站分两种情况:域名站点和无域名站点(无域名一般是用户未购买域名或者域名未备案)。 无域名站点部署:

命令:

 cd /alidata/init 
 ./vhost.sh 

注:如果在上图第3步使用的是80端口,则需输入以下命令,如果输入为其他端口号则跳过此步骤: cd /alidata/server/nginx/conf/vhosts/

mv default.conf default.conf.bak

最后将网站文件(不带目录)通过 ftp 上传至 /alidata/www/网站文件夹( vhost 创建时指定的网站目录文件夹)后,访问 http://IPhttp://IP:端口号 则能够访问到自己的站点。

域名站点部署:

命令:

 cd /alidata/init 
 ./vhost.sh 

最后将网站文件(不带目录)通过 ftp 上传至 /alidata/www/网站文件夹( vhost 创建时指定的网站目录文件夹)后,访问 http://域名 或 http://域名:端口号 则能够访问到自己的站点。

教程二:将网站迁移至数据盘

用镜像生成系统后,网站的数据目录都默认在系统盘的 /alidata/www 目录下。

如果您的应用数据量较大,系统盘默认的40G大小可能不够用,就需要我们将网站迁移至数据盘中:

方法1【脚本一键迁移】:

注:此方法会将用户数据迁移至第一块数据盘,且会清空数据盘中所有数据,适合数据盘为新购买未存放任何数据的情况;如此数据盘存放有重要数据,切勿使用此方式。有存放数据或使用高效云盘/SSD云盘的用户,请参考“方法二”。

若用户在数据盘有数据的情况下,执行此脚本而导致数据丢失,责任需自行承担,请务必做好数据备份,谨慎操作。

命令:

 cd /alidata/init                #进入到脚本存放目录 
 ./migration.sh                    #执行迁移脚本

提示图片上内容表示迁移成功,迁移完后网站路径在 /data1/www 下

方法2【手动迁移】:

1.首先分区并格式化数据盘。如果数据盘已格式化完成,请跳过此步骤。

2.以镜像中默认站点的 default 目录下的网站文件(默认站点仅有 index.php 一个首页文件)迁移为例,站点迁移操作步骤如下:

 /etc/init.d/nginx stop                #首先停止nginx服务
 /etc/init.d/php-fpm stop             #首先停止php服务
 cd  /                               #进入根目录下
 mount /dev/xvdb1  /mnt/          #将第一块数据盘挂载至mnt目录下,也可以根据您自己的需要,挂载至其他目录下。
 mkdir -p /mnt/www  /mnt/log
 cp -a /alidata/www/default/  mnt/www/  #将数据迁移至数据盘中

3.修改 default 对应的虚拟主机配置文件。

 vim /alidata/server/nginx/conf/vhosts/default.conf 

将“root /alidata/www/default;”更改为“root /mnt/www/default;” 将“access_log /alidata/log/nginx/access/default.log;”更改为“access_log /mnt/log/default.log;” 4.启动 php、nginx 完成迁移:

 /etc/init.d/php5-fpm start
 /etc/init.d/nginx start

教程三:将 mysql 迁移至数据盘中

镜像部署的 mysql 的安装目录及数据目录都存放在系统盘中,同样考虑到系统盘空间可能不够用的情况,如果 mysql 数据量很大,这里就需要我们将 mysql 迁移至数据盘中。

mysql 迁移至数据盘中,一般指将 mysql 的数据目录迁移至数据盘中。具体操作步骤如下:

1.首先格式化磁盘,并将数据盘挂载在 mnt 目录下(根据您自己的需求,也可以挂载在其他目录下)

mkdir -p /mnt/data

2.用 mysqldump 命令导出 mysql 数据,命令参考如下:

mysqldump -p --all-databases > all.sql

3.停止 mysql :

/etc/init.d/mysqld stop

4.修改 mysql 服务的状态控制脚本 /etc/init.d/mysqld。

将文件中 “datadir=/alidata/server/mysql/data” 中的目录地址更改为您迁移至数据盘中的目录地址,即“ datadir=/mnt/data ”。

5.用以下命令初始化一个全新的数据库环境:

/alidata/server/mysql/scripts/mysql_install_db --basedir=/alidata/server/mysql --datadir=/mnt/data --user=mysql

值得注意的是 datadir 是您为 mysql 指定的迁移目录,即 mysql 迁移后的数据目录。 6、启动 mysql ,然后将数据还原至新的数据盘中,操作步骤如下:

 /etc/init.d/mysqld start
 mysql <  all.sql  
 /etc/init.d/mysqld restart

如果您的mysql数据库开启了远程连接,若执行mysql < all.sql命令报错,您可使用以下命令操作:

 mysql -uroot -p密码 -h 公网IP < all.sql;
 /etc/init.d/mysqld restart