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://IP 或 http://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