点击查看原文 一个要成为网红的程序员
前言
本来不想写这篇的,因为网上都有,但是最近问关于这些环境配置的朋友有点多,于是整理一番,全部都是本人实战验证过的。
解决不能联网问题
新镜像安装完后经常发现没有网络,或者装虚拟机(桥接)发现没有自己的ip,或者yum install时出现“could not retrieve mirrorlist”等问题。
没有ip:
yum失败:
解决方法:
vim /etc/sysconfig/network-scripts/ifcfg-ens33
当然你的网卡可能叫别的名字,比如ifcfg-enp5s0f0什么的;
将ONBOOT改为yes,然后重新启动网络。
systemctl restart network
结果:
ok,已经可以联网了,接下来进行搭建php环境。
开始搭建LNMP 之 nginx
推荐大家使用yum源来安装,方便快捷。
但是yum源中没有我们想要的nginx,那么我们就要增加一个nginx的yum源。
新建文件:
vi /etc/yum.repos.d/nginx.repo
复制如下内容:
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=0
enabled=1
然后保存退出,输入yum list nginx 查看:
ok,yum源配置成功了,直接yum安装即可:
yum install nginx
启动nginx:
systemctl start nginx
添加开机启动项:
systemctl enable nginx
ok, nginx最新版已经安装好了,访问一下本机80端口:
开始搭建LNMP 之 MySQL5.7
首先安装mysql的rpm软件包,执行:
rpm -Uvh http://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm
安装成功后可以查看可用版本,执行:
yum repolist all | grep mysql
ok,安装MySQL:
yum install mysql-community-server
安装成功!
接下来要注意了!
跟着我的顺序做,首先启动mysql
systemctl start mysqld
接下来获取mysql的默认初始密码,这里是因为mysql在5.7增强了安全机制,所以新安装后都有个初始密码:
grep 'temporary password' /var/log/mysqld.log
ok,复制这个初始密码登录mysql,并修改root密码:(由于MySQL5.7默认安装了密码安全检查工具,要求密码必须包含大小写字母、数字和特殊符号,并且长度不能少于8位,否则会报错,如下图)
当然这里不推荐修改密码策略,数据库的密码就应该复杂一点,养成良好习惯。
为安全考虑,root是不允许远程连接的,于是我们添加一个新用户并授予远程登录权限:
GRANT ALL PRIVILEGES ON *.* TO 'litblc'@'%' IDENTIFIED BY 'Litblc.com.2017' WITH GRANT OPTION;
刷新:
FLUSH PRIVILEGES;
用户名为litblc,密码为Litblc.com.2017的远程用户建立好了,运行select host, user from mysql.user
可以查看所有用户与授权主机信息:
设置MySQL开机启动:
systemctl enable mysqld
systemctl daemon-reload
最后我们退出mysql来修改一下他的配置文件,使他默认使用utf8编码:
vi /etc/my.cnf
在[mysqld]下添加编码配置
[mysqld]
character_set_server=utf8
init_connect='SET NAMES utf8'
最后重启生效:
systemctl restart mysqld
ok, 接下来开始安装php7
开始搭建LNMP 之 php
第一步依然是安装php的rpm软件包
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
接下来yum安装php7以及他的一些扩展(扩展可以根据自己需求添加)
yum install php70w.x86_64 php70w-cli.x86_64 php70w-common.x86_64 php70w-gd.x86_64 php70w-ldap.x86_64 php70w-mbstring.x86_64 php70w-mcrypt.x86_64 php70w-mysql.x86_64 php70w-pdo.x86_64
安装php-fpm:
yum install php70w-fpm php70w-opcache
启动、开机启动php-fpm:
systemctl start php-fpm
systemctl enable php-fpm
ok,接下来配置nginx,使其解析php,vi /etc/nginx/conf.d/default.conf
,应该有如下一段被注释掉的代码,打开并修改为:
location ~ \.php$ {
root /usr/share/nginx/html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
重启nginx:systemctl restart nginx
到nginx解析目录创建phpinfo.php:
vi /usr/share/nginx/html/phpinfo.php
<?php
phpinfo();
保存退出。
接着就是见证奇迹的时刻了,打开我们本地的浏览器,输入http://192.168.9.138/phpinfo.php,是否见到了熟悉的界面呢?
妈的我没见到,防火墙拒绝了,那么很好,我们就一步到位,再来配置个防火墙。
开始搭建LNMP 之 iptables
首先关闭SELUNUX :
vi /etc/selinux/config
注释如下配置:
SELINUX=enforcing
SELINUXTYPE=targeted
并增加一行:
SELINUX=disabled
保存退出,使配置立即生效:
setenforce 0
关闭firewalld并禁止开机启动:
systemctl stop firewalld
systemctl disable firewalld
接下来安装iptables防火墙 :
yum install iptables-services
编辑防火墙配置文件,添加80和3306端口:
vi /etc/sysconfig/iptables
-A INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
保存退出,重新启动防火墙使配置生效,并设为开机启动项:
systemctl restart iptables
systemctl enable iptables
ok,大功告成,访问我们的phpinfo.php:
测试远程数据库连接:
全部正常!至此,配置完毕。
composer && nodejs
安装composer:
yum install composer
安装nodejs:
可以去官网 https://nodejs.org/dist/ 查找自己想要安装的版本,这里我以最新的LTS版本6.11.2为例安装。
注意下载的是什么文件,推荐使用编译好的如下方式,楼主自己编译的时候曾经把服务器干挂了,真是人生头一回。
使用wget下载压缩包,若没有wget命令,则需要先安装 yum install wget
wget https://nodejs.org/dist/v6.11.2/node-v6.11.2-linux-x64.tar.xz
解压 :
tar xvJf node-v6.11.2-linux-x64.tar.xz
之后进入到bin目录,将node 和 npm 设为全局执行:
cd node-v6.11.2-linux-x64/bin
ln -s /usr/node/node-v6.11.2-linux-x64/bin/node /usr/local/bin/node
ln -s /usr/node/node-v6.11.2-linux-x64/bin/npm /usr/local/bin/npm
这里 /usr/node/node-v6.11.2-linux-x64这个目录是你自己解压node文件的目录,我的放在/usr/node
ok, 执行 node -v 和 npm -v 可以查看到版本号,至此,基本开发环境已经配置完毕。
补充 :使用全局淘宝镜像地址,使用cnpm命令代替npm :
npm install -g cnpm --registry=https://registry.npm.taobao.org