CentOS7 安装配置 LNMP
php安装
更换源服务器
yum install epel-release
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
安装php
yum install php72w php72w-cli php72w-common php72w-devel php72w-fpm php72w-mbstring php72w-gd php72w-pdo php72w-mysqlnd php72w-xml php72w-pecl-imagick
php -v
php -m
配置文件位置
php.ini /etc/php.ini
php加载ini文件 /etc/php.d/*.ini
php-fpm.conf /etc/php-fpm.conf
php-fpm.pid /var/run/php-fpm/php-fpm.pid
php-fpm启动 php-fpm
编辑配置文件
vim /etc/php.ini
将 ;cgi.fix_pathinfo=1 改为 cgi.fix_pathinfo=0
vim /etc/php-fpm.d/www.conf
将
user = nobody
group = nobody
改为
user = nginx
group = nginx
composer 安装
curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer
# 使用中国镜像
composer config -g repo.packagist composer https://packagist.phpcomposer.com
# 如要解除镜像执行下面的
# composer config -g --unset repos.packagist
nginx 安装
安装 nginx
yum install nginx
配置
/etc/nginx/nginx.con
server 下面找到 root /usr/share/nginx/html;
改成
/data/wwwroot/www;
index index.php index.html index.htm;
server 尾部加上
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi.conf;
}
重启
systemctl start php-fpm
systemctl enable php-fpm # 设置开机重启
systemctl restart nginx
systemctl enable nginx #
测试
在/data/wwwroot/www 目录下创建phpinfo.php
内容如下:
浏览器上输入ip/phpinfo.php,如果出现如下界面,说明PHP和Nginx均安装成功
MySql 安装
wget http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.16-linux-glibc2.5-x86_64.tar
# 解压
tar -xvf mysql-5.7.16-linux-glibc2.5-x86_64.tar
tar xvfz mysql-5.7.16-linux-glibc2.5-x86_64.tar.gz
# 移动
mv mysql-5.7.16-linux-glibc2.5-x86_64 /usr/local/mysql
cd /usr/local/mysql
# 补全一些目录
mkdir /usr/local/mysql/data
mkdir /var/log/mysql
# 创建用户
useradd mysql -g mysql
# 修改权限
chown -R mysql.mysql /usr/local/mysq
# 安装
/usr/local/mysql/bin/mysql_install_db --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data
安装的一些问题解决方案
# 如报错如下
2018-07-14 06:40:32 [WARNING] mysql_install_db is deprecated. Please consider switching to mysqld --initialize
2018-07-14 06:40:32 [ERROR] Child process: /usr/local/mysql/bin/mysqldterminated prematurely with errno= 32
2018-07-14 06:40:32 [ERROR] Failed to execute /usr/local/mysql/bin/mysqld --bootstrap --datadir=/usr/local/mysql/data --lc-messages-dir=/usr/local/mysql/share --lc-messages=en_US --basedir=/usr/local/mysql
-- server log begin --
-- server log end --
# 则使用以下命令安装
/usr/local/mysql/bin/mysqld --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data --initialize
# 如果出现以下错误
/usr/local/mysql/bin/mysqld: error while loading shared libraries: libnuma.so.1: cannot open shared object file: No such file or directory
# 则安装依赖
yum -y install numactl
配置 /etc/my.cnf
[mysqld]
datadir=/usr/local/mysql/data
basedir=/usr/local/mysql
socket=/tmp/mysql.sock
user=mysql
port=3306
character-set-server=utf8
# 取消密码验证
skip-grant-tables
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# skip-grant-tables
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
# 添加快捷方式
ln -s /usr/local/mysql/bin/mysql /usr/bin
# 将mysql加入服务
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
# 开机自启
chkconfig mysql on
# 开启
systemctl start mysql
# 设置密码
/usr/local/mysql/bin/mysql -u root -p
# 操作mysql数据库
>>use mysql;
# 修改密码
>>update user set authentication_string=password(\'你的密码\') where user=\'root\';
>>flush privileges;
>>exit;
将/etc/my.cnf中的skip-grant-tables删除
# 登录再次设置密码(不知道为啥如果不再次设置密码就操作不了数据库了)
/usr/local/mysql/bin/mysql -u root -p
>>ALTER USER \'root\'@\'localhost\' IDENTIFIED BY \'修改后的密码\';
>>exit;
# 允许远程连接
/usr/local/mysql/bin/mysql -u root -p
>>use mysql;
>>update user set host=\'%\' where user = \'root\';
>>flush privileges;
>>eixt;
python3 安装
yum install -y epel-release
yum install -y python36 python36-devel python36-setuptools python python-devel python-setuptools
easy_install-3.6 pip
python3 -V
pip -V
pip2 -V
redis 安装
yum install -y epel-release
yum install redis
systemctl start redis # 运行
systemctl enable redis # 开机自启
redis-cli # 正常是进入 redis 的命令行
配置文件 /etc/redis.conf ,如需要修改自行配置