LNMP 镜像使用指南
操作系统:Ubuntu / CentOS
软件明细:nginx - 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/nginx start|stop|restart
/etc/init.d/php-fpm start|stop|restart
切换 PHP 版本(此命令仅针对 PHP 多版本镜像)
switch
1.在使用镜像安装系统后,在 /alidata/server/nginx/conf/vhosts 目录下,我们可以看到一个默认的配置文件 default.conf 。关于如何配置网站,我们可以参考该文件中的内容(#号后面为注释说明):
server {
listen 80 default; #默认监听80端口
server_name _; #默认ip/域名都可访问
index index.html index.htm index.php; #定义索引文件的名称
root /alidata/www/default; #定义服务器的默认网站根目录位置
location ~ .*\.(php|php5)?$
{ #php脚本请求全部转发到FastCGI处理。
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi.conf;
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
}
location ~ .*\.(js|css)?$
{
expires 1h;
}
access_log /alidata/log/nginx/access/default.log;
}
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.最后,我们需要配置 nginx ,并让 nginx 重新加载一下配置,即可完成我们网站的配置。我们可以在可以在 /alidata/server/nginx/conf/vhosts 目录下新建一个 phpwind.conf 文件(文件名必须以 .conf 结尾,phpwind 为自取名称,可以为其它名称),并且加入以下内容:
server {
listen 80;
server_name 公网ip;
index index.html index.htm index.php;
root /alidata/www/phpwind;
location ~ .*\.(php|php5)?$
{
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi.conf;
}
access_log /alidata/log/nginx/access/phpwind.log;
}
5.最终我们用命令 /etc/init.d/nginx reload 完成我们网站的配置。然后我们在浏览器中输入 http://公网IP 即可看到我们部署的 phpwind :
然后我们也可以用 http://公网IP/phpmyadmin 来访问我们部署的phpmyadmin,用户名和密码输入 /alidata/account.log 中存储我们的 mysql 的用户名及密码:
输入正确的 mysql 用户名及密码后,然后我们就可以访问我们 ECS 上部署的 mysql 了:
用镜像生成系统后,网站的数据目录都默认在系统盘的 /alidata/www 目录下。如果您的应用数据量较大,系统盘默认的 20G 大小可能不够用。这需要我们将网站迁移至数据盘中。
1.首先分区并格式化我们的数据盘。如果已经格式化数据盘,此步可以不用做。
2.以《部署网站》为例,然后我们执行以下命令迁移 phpwind 至数据盘中:
/etc/init.d/nginx stop #首先停止nginx服务
/etc/init.d/php5-fpm stop #首先停止php服务
cd / #进入根目录下
mount /dev/xvdb1 /mnt/ #将第一块数据盘挂载至mnt目录下,也可以
根据您自己的需要,挂载至其他数据盘中。
mkdir -p /mnt/www /mnt/log
cp -a /alidata/www/phpwind /mnt/www/ #将数据迁移至数据盘中
3.vim /etc/nginx/conf.d/phpwind.conf
将“root /alidata/www/phpwind;”更改为“/mnt/www/phpwind;”
将“access_log /alidata/log/nginx/access/phpwind.log;”
更改为“access_log /mnt/log/phpwind.log;”
4.启动php、nginx完成迁移:
/etc/init.d/php5-fpm start
/etc/init.d/nginx 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;