技术支持 云市场镜像产品 PHP 运行环境 LNMP 镜像使用指南

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;