阿里云服务器ECS搭建LNMP

Lincain 2019-06-21

购买阿里云服务后搭建服务器

安装 nginx

1  http://nginx.org/en/download.html  下载nginx的最新版

2 解压nginx安装包 tar -xzf nginx-1.9.3.tar.gz

3 进入 nginx-1.9.3

4 安装 zlib库
# sudo apt-get install zlib1g-dev  // Ubuntu
# sudo yum install zlib-devel      // centos

5 安装 PCRE库
# sudo apt-get install libpcre3-dev # Ubuntu
# sudo yum install pcre-devel    # CentOS

6 安装可选的OpenSSL
  # sudo apt-get install openssl
  # sudo apt-get install libssl-dev
   
  # sudo yum install openssl
  # sudo yum install openssl-devel

7 进入<nginx源代码根目录>/src/core,然后用vi打开nginx.h头文件

8 ./configure    // 执行配置命令
  [nginx 被默认安装在 usr/local/nginx 中]

9 执行 make install 

10 执行nginx -t   检查配置文件是正确的

11 进入/usr/local/nginx/sbin目录
 # ./nginx            //启动nginx服务
 # ./nginx -s reload // 重启服务
// 如果发现80端口已经被占用,可能是nginx服务已经启动。
 # pkill nginx      // 杀掉nginx服务。
 # ps -ef | grep nginx     命令查看内存中是否还有nginx进程。

安装 php

1、安装gcc及libxml2
# yum install gcc -y 
# yum install libxml2* -y
2、下载最新PHP官方安装包 http://php.net/downloads.php 
3、解压安装包
# tar zxvf php-5.6.29.tar.gz
4、安装php 
# cd php-5.6.28  
// 最简单的配置,(在配置phpmyadmin时,出现缺少扩展mbstring,mysqli的问题)
# ./configure --prefix=/usr/local/php --enable-fpm
// --prefix  
// 比较全的配置 (但可能缺少库)
# ./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-zlib --with-libxml-dir --with-gd --with-iconv --with-curl --with-png-dir --with-jpeg-dir --enable-sockets --enable-mbstring --enable-inline-optimization --enable-zend-multibyte --with-freetype-dir
// 个人本次使用的配置
# ./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-mysql=mysqlnd --with-mysqli=mysqlnd 

# make && make install  // 编译 安装

5、拷贝生产环境的PHP配置文件
cp /home/develop/php-5.6/php.ini-production /usr/local/php/etc/php.ini
6、拷贝php-fpm配置文件 (如果没有特殊要求,则直接使用默认配置即可)
cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf

7、启动服务
# cd /usr/local/
// 启动nginx服务
# ./nginx/sbin/nginx  
// 启动php
# ./php/sbin/php-fpm -c /usr/local/php/etc/php.ini -y /usr/local/php/etc/php-fpm.conf

8、配置php和nginx 及 fastcgi
//打开nginx配置文件
# cd /usr/local
# vi nginx/conf/nginx.conf
其中有一段 修改成 
 location ~ \.php$ {
            root           /mnt/www;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
            include        fastcgi.conf;
        }
// 其中 fastcgi.conf 在 /usr/localnginx/conf/中,安装自带的。
如果出现如下问题,就是没有配置好:
FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream,
 client: 180.167.68.134, server: localhost, request: "GET /index.php HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "*.*.*.*"

安装 mysql

卸载 mysql

  1. ps -ef|grep mysql 查看安装路径

  2. find / -name mysql 查看相关 文件包

  3. rpm -qa | grep -i mysql 查看相关组件

  4. rpm -ev mysql-community-server-5.6.35-2.el7.x86_64 删除组件

  5. rpm -ev mysql-community-client-5.6.35-2.el7.x86_64

  6. rpm -ev php-mysql-5.4.16-42.el7.x86_64

  7. rpm -ev mysql-community-release-el7-5.noarch

  8. rpm -ev mysql-community-libs-5.6.35-2.el7.x86_64

  9. rpm -e --nodeps mysql-community-libs-5.6.35-2.el7.x86_64 // 强制卸载

  10. rm -rf /var/lib/mysql 删除文件

  11. rm -rf /var/lib/mysql/mysql rm -rf /usr/share/mysql

  12. more /etc/passwd | grep mysql

  13. more /etc/shadow | grep mysql 删除组,用户

  14. more /etc/group | grep mysql 删除组,用户

  15. userdel mysql 删除用户

  16. groupdel mysql 删除组

  17. rpm -qa | grep -i mysql 确认是否卸载

安装 mysql

  1. 下载 MySQL-5.6.35-1.linux_glibc2.5.x86_64.rpm-bundle.tar

  2. 解压 tar -xvf MySQL-5.6.35-1.linux_glibc2.5.x86_64.rpm-bundle.tar

  3. cd MySQL-5.6.35 // 改文件名为 MySQL-5.6.35

  4. yum install MySQL-shared-compat-5.6.35-1.linux_glibc2.5.x86_64.rpm # 安装 RHEL兼容包

  5. yum install MySQL-server-5.6.35-1.linux_glibc2.5.x86_64.rpm # MySQL服务端程序

  6. yum install MySQL-client-5.6.35-1.linux_glibc2.5.x86_64.rpm # MySQL客户端程序

  7. yum install MySQL-devel-5.6.35-1.linux_glibc2.5.x86_64.rpm # MySQL的库和头文件

  8. yum install MySQL-shared-5.6.35-1.linux_glibc2.5.x86_64.rpm # MySQL的共享库

  9. cat /root/.mysql_secret配置MySQL登录密码
    // 获取MySQL安装时生成的随机密码 为 2M*8c

  10. service mysql start # 启动MySQL服务

  11. mysql -uroot -p # 进入MySQL,

  12. 使用之前获取的随机密码

  13. SET PASSWORD FOR 'root'@'localhost' = PASSWORD('mypassword');
    // 在MySQL命令行中设置root账户的密码为mypassword

  14. quit # 退出MySQL命令行

  15. service mysql restart # 重新启动MySQL服务

yum 安装 mysql

  1. yum install libaio # 安装libaio依赖包

  2. wget http://dev.mysql.com/get/mysq...

  3. yum localinstall mysql-community-release-el7-5.noarch.rpm

  4. yum install mysql-community-server

  5. 启动和关闭 MySQL Server

  6. systemctl start mysqld //启动 MySQL Server

  7. systemctl status mysqld // 查看 MySQL Server 状态

  8. systemctl stop mysqld //关闭 MySQL Server

  9. 防火墙设置 firewall-cmd(推荐)centos 7才可以

  10. firewall-cmd --permanent --zone=public --add-port=3306/tcp

  11. firewall-cmd --permanent --zone=public --add-port=3306/udp
    // 就开放了相应的端口。

  12. firewall-cmd --reload //使最新的防火墙设置规则生效

  13. 重置mysql密码

1、systemctl start mysqld 先启动
  2、mysql_secure_installation  安全设置 (没有密码 按enter 进入)
     Set root password? [Y/n] y        [设置root用户密码]
     Remove anonymous users? [Y/n] y            [删除匿名用户]
     Disallow root login remotely? [Y/n] n      [禁止root远程登录]
     Remove test database and access to it? [Y/n] y   [删除test数据库]
     Reload privilege tables now? [Y/n] y        [刷新权限]
 3、新建数据库
    //登录MYSQL(有ROOT权限)。这里我以ROOT身份登录
     [root@iZ28gvqe4biZ ~]# mysql -u root -p
    //首先为用户创建一个数据库hivemeta
    mysql  > create database hivemeta;
    mysql  > use hivemeta
    //授权hdp用户拥有hivemeta数据库的所有权限。
    mysql  > grant all privileges on *.* to hdp@"%" identified by "hdp" with grant option;
    //刷新系统权限表
    mysql  > flush privileges;
    mysql  > use hivemeta;
    //mysql/hive字符集问题
    mysql  > alter database hivemeta character set latin1;

安装 phpMyAdmin

  1. 下载 phpMyAdmin

  2. tar zxvf php-5.6.5.2.all-language.tar.gz // 解压

  3. 访问 phpMyAdmin/index.php

问题一 添加mbstring扩展

# cd /usr/src/php-5.6.29/ext/mbstring
# /usr/local/php/bin/phpize
# ./configure --with-php-config=/usr/local/php/bin/php-config
# make && make install
# echo ‘extension=mbstring.so' >>/usr/local/php/lib/php.ini
//或者打开 php.ini,直接添加extension=mbstring.so字段
# 重启服务器

问题二 添加 mysqli 扩展

# cd /usr/src/php-5.6.29/ext/mysqli
# /usr/local/php/bin/phpize
# ./configure --with-php-config=/usr/local/php/bin/php-config
# make && make install
# 这样会在 /usr/local/php/lib/php/extensions/no-debug-non-ztszh中生成 mysqli.so文件
# echo ‘extension=mysqli.so' >>/usr/local/php/lib/php.ini
# 或者打开 php.ini,直接添加extension=mysqli.so字段

# 网络上另一种配置是
# ./configure --with-php-config=/usr/local/php/bin/php-config –-with-mysql=/usr/lib64/mysql/
# ./configure --with-php-config=/usr/local/php/bin/php-config --with-mysqli=/usr/lib64/mysql/bin/mysql_config
# 这个是针对mysql5.5之前。其中-with-mysql指的是mysql的安装路径。现在mysql5.6默认的安装在/usr/lib64/mysql/,但是没有mysql_config文件。

错误

打开 phpMyAdmin/index.php出现提示 You are using PHP’s deprecated ‘mysql’ extension,

解决:
在phpmyadmin中config.inc.php修改:
$cfg'Servers'['extension'] = 'mysqli';

执行PHP配置命令./configure 时提示以下错误:

checking for OS + Linux 2.6.32-431.el6.x86_64 x86_64
checking for C compiler ... not found
解决:
yum -y install gcc gcc-c++ autoconf automake make

使用SFTP错误:

Received unexpected end-of-file from SFTP server
解决方法:
vi /etc/ssh/sshd_config
删除Subsystem sftp /usr/libexec/openssh/sftp-server前面的"#",
保存退出,重启SSH
service sshd restart 然后重新连接FTP测试

相关推荐