LAMP 镜像使用指南
镜像环境说明
操作系统:Ubuntu / CentOS
软件明细:apache - mysql - php - vsftp
注:各个软件版本以云市场镜像中产品介绍为准。
1、密码存储位置:
/alidata/account.log
文件中。
2、查看密码:
进入服务器的系统中,可以在任意的目录下,执行以下命令
cat /alidata/account.log
注意:cat 后面要有空格 3、修改 ftp 的密码:
用 root 用户登录系统,然后执行下面命令:
passwd www
然后输入您的 ftp 新密码。
4、修改 mysql 的密码:
mysqladmin -uroot -p旧密码 password 新密码
注意: -p 和旧密码之间没有空格,password 和新密码之间有空格。
软件目录及配置列表 所有软件(除 ftp 以外)都采用源代码方式安装, 安装目录单独分离到 /alidata 目录下。
软件的主目录:/alidata
web 主目录: /alidata/www
ftp 主目录:/alidata/www
nginx 主目录:/alidata/server/nginx
nginx 配置文件主目录:/alidata/server/nginx/conf
php 主目录: /alidata/sever/php/
mysql 主目录:/alidata/server/mysql
mysql 配置文件:/etc/my.cnf
日志目录:
/alidata/log/nginx
为 nginx 存放日志主目录
/alidata/log/php
为 php 存放日志主目录
/alidata/log/mysql
为 mysql 存放日志主目录
init 目录:
/alidata/init
为当用户用镜像创建系统后,当且仅当用户在第一次启动系统的时候,调用此目录下的脚本来初始化 ftp 及 mysql 的密码(随机密码)。
/etc/init.d/mysql start|stop|restart
/etc/init.d/vsftpd start|stop|restart
/etc/init.d/httpd start|stop|restart
切换 PHP 版本(此命令仅针对 PHP 多版本镜像)
switch
1、在使用镜像安装系统后,在 /alidata/server/httpd/conf/vhosts 目录下(部分镜像在 /alidata/vhosts 目录下),我们可以看到一个默认的配置文件 default.conf。
关于如何配置网站,我们可以参考该文件中的内容(#号后面为注释说明):
<VirtualHost *:80> #虚拟主机,指定 80 端口
DocumentRoot /alidata/www/
default #定义服务器的默认网站根目录位置
ServerName localhost #定义使用 ip 访问
ServerAlias localhost
</VirtualHost>
2、根据以上默认配置,我们进入网站根目录 /alidata/www/default/ 可以看到 index.html 、 info.php 这两个文件。
我们直接在浏览器中输入 “http://... ” (..*.*为我们服务器的公网 ip ),就默认可以访问到 index.html 中的内容。
我们也可以输入 “http://.../info.php” 显示访问 info.php 运行后的结果。当然你输入一个不存在的文件访问,就会出现 404 Not Found 的错误。
3、然后,我们下载 phpwind 及 phpmyadmin 的源码部署我们的站点。
以下 oss 的下载链接由阿里云 Linux 一键安装包提供,大家可以放心使用。具体安装部署命令如下:
以下为部署 phpwind :
cd
wget http://oss.aliyuncs.com/aliyunecs/onekey/phpwind_GBK_8.7.zip
rm -rf phpwind_GBK_8.7
unzip phpwind_GBK_8.7.zip
mkdir -p /alidata/www/phpwind
mv phpwind_GBK_8.7/upload/* /alidata/www/phpwind/
chmod -R 777 /alidata/www/phpwind/attachment
chmod -R 777 /alidata/www/phpwind/data
chmod -R 777 /alidata/www/phpwind/html
cd /alidata/www/phpwind/
find ./ -type f | xargs chmod 644
find ./ -type d | xargs chmod 755
chmod -R 777 attachment/ html/ data/
以下为部署 phpmyadmin :
wget http://oss.aliyuncs.com/aliyunecs/onekey/phpMyAdmin-4.1.8-all-languages.zip
rm -rf phpMyAdmin-4.1.8-all-languages
unzip phpMyAdmin-4.1.8-all-languages.zip
mv phpMyAdmin-4.1.8-all-languages /alidata/www/phpwind/phpmyadmin
chown -R www:www /alidata/www/phpwind/
4、最后,我们需要配置 apache ,并让 apache 重新启动,即可完成我们网站的配置。 我们可以在默认的配置文件 default.conf 中加入以下内容,也可以在 /alidata/server/httpd/conf/vhosts 目录下新建一个 phpwind.conf 文件(文件名必须以 .conf 结尾, phpwind 为自取名称,可以为其它名称),并且加入以下内容:
<VirtualHost *:80>
DocumentRoot /alidata/www/phpwind
ServerName 公网IP/域名
ServerAlias 公网IP/域名
ErrorLog "/alidata/log/httpd/phpwind-error.log"
CustomLog "/alidata/log/httpd/ phpwind.log" common
</VirtualHost>
5、最终我们用命令
/etc/init.d/httpd start|stop|restart
完成我们网站的配置。然后我们在浏览器中输入 http://IP 即可看到我们部署的 phpwind :
然后我们也可以用 http://IP/phpmyadmin 来访问我们部署的 phpmyadmin ,用户名和密码输入 /alidata/account.log 中存储我们的 mysql 的用户名及密码:
输入正确的 mysql 用户名及密码后,然后我们就可以访问我们 ECS 上部署的 mysql 了:
用镜像生成系统后,网站的数据目录都默认在系统盘的 /alidata/www 目录下。
如果您的应用数据量较大,系统盘默认的 20G 大小可能不够用。这需要我们将网站迁移至数据盘中。
1、首先分区并格式化我们的数据盘。如果已经格式化数据盘,此步可以不用做。
2、以《部署网站》为例,然后我们执行以下命令迁移 phpwind 至数据盘中:
/etc/init.d/httpd stop #首先停止 apache 服务
cd / #进入根目录下
mount /dev/xvdb1 /mnt/ #将第一块数据盘挂载至 mnt 目录下,也可以根据您自己的需要,挂载至其他数据盘中。这里也可以尝试:mount /dev/xvdb1 /alidata/www直接把/alidata/www目录挂载在数据盘中,似乎更加方便。
mkdir -p /mnt/www /mnt/log
cp -a /alidata/www/phpwind /mnt/www/ #将数据迁移至数据盘中
3、vim /alidata/server/httpd/conf/vhosts/phpwind.conf将:
DocumentRoot /alidata/www/phpwind 更改为: DocumentRoot /mnt/www/phpwind
然后将:ErrorLog "/alidata/log/httpd/phpwind-error.log"
CustomLog "/alidata/log/httpd/phpwind.log" common
更改为:ErrorLog "/mnt/log/phpwind-error.log"
CustomLog "/mnt/log/phpwind.log" common
4、启动 apache 完成迁移:
/etc/init.d/httpd start
镜像部署的 mysql 的安装目录及数据目录都存放在系统盘中,同样考虑到系统盘空间不够用的情况,后面如果我们部署的 mysql 数据量很大,这里就需要我们将我们的 mysql 迁移至数据盘中。
mysql 迁移至数据盘中,一般指将 mysql 的数据目录迁移至数据盘中。具体操作步骤可以参考如下:
1、首先格式化磁盘,并将数据盘挂载在 mnt 目录下(根据您自己的需求,也可以挂载在其他目录下)
mkdir -p /mnt/data
2、用 mysqldump 命令导出您项目所有的数据,命令参考如下:
mysqldump -p --all-databases > all.sql
3、停止 mysql :
/etc/init.d/mysqld stop
4、vim /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的数据目录。
6、启动 mysql ,然后将数据还原至新的数据盘中:
/etc/init.d/mysqld start
mysql < all.sql
/etc/init.d/mysqld restart
很多用户反馈,用镜像生成系统后,ECS 本地能够连接 mysql ,为何远程连接不上 mysql 呢?这是因为默认安装的 mysql ,出于安全考虑,只能本地连接。
如果您需要远程连接,这里就需要设置一下 mysql 的权限表。具体设置的步骤如下:
1、在您的ECS上连接进入 mysql 。
2、执行以下 mysql 命令:
use mysql #打开 mysql 数据库
将 host设置为 % 表示任何 ip 都能连接 mysql ,当然您也可以将 host 指定为某个 ip 。
update user set host='%' where user='root' and host='localhost';
flush privileges; #刷新权限表,使配置生效
然后我们就能远程连接我们的 mysql 了。 3、如果您想关闭远程连接,恢复 mysql 的默认设置(只能本地连接),您可以通过以下步骤操作:
use mysql #打开 mysql 数据库
update user set host='localhost' where user='root'; #将 host 设置为 localhost 表示只能本地连接 mysql
flush privileges; #刷新权限表,使配置生效
备注:您也可以添加一个用户名为 yuancheng ,密码为 123456 ,权限为 % (表示任意 ip 都能连接)的远程连接用户。命令参考如下:
grant all on *.* to 'yuancheng'@'%' identified by '123456';
flush privileges;
.htaccess 伪连接
出于安全考虑,镜像中安装的 apache 默认是关闭了 .htaccess 的伪连接的功能。具体配置 /alidata/server/httpd/conf/httpd.conf 如下:
<Directory />
Options FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
那如何打开 .htaccess 的功能呢,我们只需将上述配置文件中 “AllowOverride None” 改为 “AllowOverride All” ,然后重启 apache 即可。
关于如何配置 apache 的 rewrite 来实现伪连接,这里不做过多介绍,这块网络上有很多教程,大家自行参考。