LEMP = Linux - NGINX - MySQL / MariaDB - PHP 。
添加用户
拿到一台服务器,第一件事是去添加一个平时操作用的用户,最好不要直接使用 root 用户,因为会有安全问题。下面添加一个用户叫 ninghao :
adduser ninghao
设置密码
有了 ninghao 这个用户以后,可以再设置一下他的密码:
passwd ninghao
root 权限
给 ninghao 用户分配可以使用 root 用户的权限,这样需要 root 权限的时候,可以在命令前面添加 sudo:
gpasswd -a ninghao wheel
配置 SSH
平时要 SSH 到服务器,然后去控制服务器,连接的时候有个默认的端口,为了安全,我们可以修改一下这个端口号,比如改成 3333:
vi /etc/ssh/sshd_config # 修改为 Port 3333 PermitRootLogin no # 重载服务 systemctl reload sshd.service
SWAP
内存用完了就会用虚拟内存,SWAP 就是虚拟内存,不得已的时候才会用到。一般虚拟内存的大小是物理内存的两倍,下面的命令会添加一个 4G 的 SWAP:
sudo fallocate -l 4G /swapfile sudo chmod 600 /swapfile sudo mkswap /swapfile sudo swapon /swapfile sudo sh -c 'echo "/swapfile none swap sw 0 0" >> /etc/fstab'
防火墙
防火墙可以控制进入到服务器或者从服务器出去的数据,CentOS 7 上自带一个 firewalld。
# 开启 firewalld 服务: sudo systemctl start firewalld # 开放 SSH 自定义的端口 sudo firewall-cmd --permanent --add-port=3333/tcp # 开放 HTTP sudo firewall-cmd --permanent --add-service=http # 开放 HTTPS sudo firewall-cmd --permanent --add-service=https # 开放 SMTP sudo firewall-cmd --permanent --add-service=smtp # 查看 sudo firewall-cmd --get-services sudo firewall-cmd --permanent --list-all # 重载服务 sudo firewall-cmd --reload # 开机启动 sudo systemctl enable firewalld
挂载
如果你在阿里云购买的服务器,同时又购买了数据盘,你需要格式化一下,然后把它挂载到系统的某个指定的地方。
sudo fdisk -l # 发现 /dev/xvdb: 32.2 GB sudo fdisk /dev/xvdb # 按键 n, p, 1, enter, enter, n, enter, enter, wq sudo fdisk -l # 发现 /dev/xvdb1 sudo mkfs.ext3 /dev/xvdb1 # 把 /dev/xvdb1 /mnt ext3 defaults 0 0 # 添加到 etc/fstab sudo mount -a
添加仓库
系统自带一些仓库,这些仓库里的软件可能并不是你想要的,有可能版本比较旧。所以你需要安装一些第三方的仓库,这些仓库里会有比较新的软件,比如 ius 仓库。先安装一下 epel 仓库,然后再安装 ius 仓库。下面的 rpm 文件可能会失效,你可以在 IUS 网站的仓库列表里找到最新的下载地址。
sudo rpm -Uvh http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm sudo rpm -Uvh https://dl.iuscommunity.org/pub/ius/stable/CentOS/7/x86_64/ius-release-1.0-14.ius.centos7.noarch.rpm
PHP
sudo yum install php56u-fpm -y sudo yum install php56u-gd php56u-mysqlnd php56u-pdo php56u-mcrypt php56u-mbstring php56u-xmlrpc php56u-pecl-jsonc php56u-pecl-memcached -y sudo systemctl start php-fpm sudo systemctl enable php-fpm
配置:
# PHP-FPM vi /etc/php-fpm.d/www.conf # 减小内存占用 pm = dynamic pm.max_children = 10 原:50 pm.start_servers = 3 原:5 pm.min_spare_servers = 1 原 5 pm.max_spare_servers = 5 原 35 pm.max_requests = 0 # php.ini vi /etc/php.ini memory_limit 512M upload_max_filesize 300M post_max_size 300M
NGINX
Web 服务器。
# 安装 sudo yum install nginx -y # 启动 sudo systemctl start nginx # 设置为开机自动启动 sudo systemctl enable nginx
配置:
client_max_body_size 256m; fastcgi_read_timeout 600;
MariaDB
数据库,可以完全代替 MySQL。
# 删除系统自带的 MariaDB sudo yum remove mariadb-libs # 安装新的 MariaDB sudo yum install mariadb100u mariadb100u-server -y # 启动 sudo systemctl start mariadb # 设置为开机自动启动 sudo systemctl enable mariadb
Sendmail
发邮件用的小工具。
# 安装 sudo yum install sendmail -y # 启动 sudo systemctl start sendmail # 设置为开机自动启动 sudo systemctl enable sendmail
Composer
PHP 包管理工具。
curl -sS https://getcomposer.org/installer | php echo $PATH sudo mv composer.phar /usr/local/bin/composer # 编辑 vi ~/.bash_profile # 添加 export PATH="$HOME/.composer/vendor/bin:$PATH" # 执行 source ~/.bash_profile
Git
版本控制工具。
# 安装 sudo yum install git2u -y # 错误 Error: perl-Git2u conflicts with perl-Git-1.8.3.1-4.el7.noarch Error: git2u conflicts with git-1.8.3.1-4.el7.x86_64 # 解决 sudo yum remove perl-Git-1.8.3.1-4.el7.noarch # 配置 git config --global user.email 117663444@qq.com git config --global user.name "wanghao8080"
Memcached
sudo yum install memcached -y sudo systemctl start memcached sudo systemctl enable memcached
Drush
管理 Drupal 网站用的命令行工具。
composer global require "drush/drush": "7.0.0"
WP-CLI
管理 WordPress 网站用的命令行工具。
# 下载 curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar # 添加执行权限 chmod u+x wp-cli.phar # 移动到环境变量目录 sudo mv wp-cli.phar /usr/local/bin/wp # 错误:无法下载 # 解决:手工下载并上传 rsync -a -e 'ssh -p 3333' ~/downloads/wp-cli.phar ninghao@x.x.x.x:~/
评论
LNMP....
9 年 3 个月 以前
我看他们老外是叫 LEMP ,因为 NGINX 的发音是 Engine X 。
9 年 3 个月 以前
这个非常好。感谢老王。这个是centos 7 吗?还是不用关心版本?
9 年 3 个月 以前
嗯,需要 CentOS 7 。
9 年 3 个月 以前
看到 是 针对 centos 7
9 年 3 个月 以前
64位的也一样吧Q!
9 年 3 个月 以前
嗯,需要用 64 位的 CentOS 7 。
9 年 3 个月 以前
composer global require "drush/drush": "7.0.0"
出错。改成如下就可以了。
composer global require drush/drush:7.*
9 年 3 个月 以前
好来,按您说的修正了一下 :)
9 年 3 个月 以前
老师是不是应该
# 添加
export PATH="$HOME/.composer/vendor/bin:$PATH"
# 执行
source ~/.bash_profile
9 年 3 个月 以前
细心 :)
9 年 3 个月 以前
建议“:”的前面放全局变量“$PATH”
9 年 2 个月 以前
皓哥真猛
9 年 3 个月 以前
皓哥我给你提个想法,像你这样这么会折腾的人,而且折腾的还这么好,
适合做个WEB新技术的门户网站,发布各种新技术新闻、然后测评啥的。
9 年 3 个月 以前
我想自己先多学些东西,然后能跟一伙人一起进步,成为那种牛 x 的人,然后这伙人可以自由组合,去做他们认为有意思的产品。
9 年 3 个月 以前
配置:
client_max_body_size 256m;
fastcgi_read_timeout 600;
的文件和所加位置分别是什么
9 年 2 个月 以前
比如你上传大的东西,需要设置一下 client_max_body_size ,想让 php-fpm 执行更长的时间,可以设置一下 fastcgi_read_timeout 。
9 年 2 个月 以前
之前看过你的视频,lemp全套做完,发现没有一键包的运行速度快,打开速度慢,最后我就用一键包做生产环境,用你的视频里的步骤做的环境来做开发环境。
我的问题是lemp的优化都应该有哪些步骤?
9 年 2 个月 以前
比如您用 Drupal ,可以试试给 PHP 安装一个 Memcached 扩展,再给 Drupal 安装一个 Memcached 模块。
9 年 2 个月 以前
如果是用laravel 要哪些呢?我想把可能会用到的优化都做了。memcached 应该是必装了吧?
9 年 2 个月 以前
我觉得可以参考 Laravel 官方的 Homestead 去配置需要的环境。
9 年 2 个月 以前
sudo yum install php56u-gd php56u-mysqlnd php56u-pdo php56u-mcrypt php56u-mbstring php56u-xmlrpc php56u-pecl-jsonc php56u-pecl-memcached -y
这些插件是php环境必须装的,还是优化php环境的还是有些cms用到这些插件?
9 年 1个月 以前
这些是基本扩展,很多应用都需要,除了最后的 memcached 。
9 年 1个月 以前
http://ninghao.net/blog/1368
看的是老教程,结果我用的 centos 7,在安装 mysql 的时候卡了好久。建议在老教程中写一下“如果你使用 centos 7 请跳转到新教程”。
9 年 3 周 以前
添加仓库都成功了,但是安装php的时候cannot find a valid baseurl for repo,咋解决呀。
8 年 8 个月 以前
现在 ius 仓库的地址换了,您在安装的时候可以这样:sudo yum install https://centos7.iuscommunity.org/ius-release.rpm -y ,上面安装的是适合在 centos 7 上使用的仓库,您不需要再单独安装 epel 了,因为这个仓库依赖 epel ,所以会自动给你安装好。
8 年 8 个月 以前
现在安装了 ius 仓库以后,会提供两个版本的 php,一个是 php56u(php 5.6),一个是 php70u(php 5.7)。
8 年 8 个月 以前
好像没有看到收藏之类的图标,有时候看到有用的文章想收藏都没有办法。后面找起来好麻烦。
8 年 1 周 以前
嘿嘿。暂时先记到自己的笔记应用里吧 :)
8 年 1 周 以前