LEMP 环境配置 – Ubuntu

LEMP

本案例版本说明

基础服务

  1. Ubuntu 14.04
  2. Nginx 1.11.1
  3. PHP 7.0.8-2+deb.sury.org~trusty+1
  4. Mariadb 10.0.26-MariaDB-1~trusty

相关工具

  1. Git 2.9.0
  2. Composer 1.1.3

更新 Ubuntu 为最新版

  • 更新软件包

    $ sudo apt-get update && sudo apt-get dist-upgrade
    
  • 重启系统

    $ sudo init 6
    
  • 安装更新管理器核心

    $ sudo apt-get install update-manager-core
    
  • 启动升级进程

    $ sudo do-release-upgrade -d
    
  • 更新完成重启

    $ sudo init 6
    

    此过程时间较长,因此建议

    • 直接安装最新版的 Ubuntu 14.04 系统
    • 或者修改 Ubuntu 软件包为国内镜像后更新系统

    编辑/etc/update-manager/release-upgrades配置文件,设置Prompt=lts

基础服务安装

安装 Nginx

一般安装
  • 更新 Ubuntu 软件库

    $ sudo apt-get update
    
    • 安装 Nginx
    $ sudo apt-get install nginx
    

    一般安装 ubuntu 14.04 默认安装 Nginx 的版本 1.4.6

新版安装
  • 下载 nginx_signing.key

    $ sudo wget http://nginx.org/keys/nginx_signing.key
    
  • 添加 key

    $ sudo apt-key add nginx_signing.key
    
  • 添加 Nginx 来源

    $ sudo vi /etc/apt/sources.list
    
  • 在 sources.list 添加两行

    deb http://nginx.org/packages/mainline/ubuntu/ trusty nginx
    deb-src http://nginx.org/packages/mainline/ubuntu/ trusty nginx
    

    trusty 是 Ubuntu 版本名称

  • 运行下面命令

    $ sudo apt-get remove nginx-common
    $ sudo apt-get update
    $ sudo apt-get install nginx
    
  • 运行 Nginx 开源

    $ sudo nginx
    
  • 验证 Nginx 开源是启动并运行

    $ curl -I 127.0.0.1
      HTTP/1.1 200 OK
      Server: nginx/1.11.1
      Date: Tue, 28 Jun 2016 20:32:10 GMT
      Content-Type: text/html
      Content-Length: 612
      Last-Modified: Tue, 31 May 2016 14:40:35 GMT
      Connection: keep-alive
      ETag: "574da263-264"
      Accept-Ranges: bytes
    

    干净的 ubuntu 需要安装 curl ,才能执行上面命令

    $ sudo apt-get install curl
    
配置 Nginx
  • 在 /etc/nginx/nginx.conf 文件中的第一行查看你的 Nginx 用户。

    $ less /etc/nginx/nginx.conf
    
  • 修改用户和组

    PHP7 默认的用户和组是 www-data 。
    如果你的 Nginx 用户名也是 www-data,那么不需要做下面的修改。
    如果你的 Nginx 用户名是 nginx,那么你可以在 /etc/nginx/
    nginx.conf 文件中将它修改成 www-data 。

    $ sudo vi /etc/nginx/nginx.conf
    
  • 重启 Nginx 服务

    $ sudo service nginx reload
    

安装 PHP7

升级安装

如果系统之前有 PHP 其他版本请先删除

sudo apt-get purge php5-fpm php5-mysql php5-common
sudo apt-get --purge autoremove
全新安装

本文通过 Ubuntu PPA 来安装 PHP7

  • 添加 PPA

    $ sudo apt-get install python-software-properties software-properties-common
    $ sudo add-apt-repository ppa:ondrej/php
    $ sudo apt-get update
    
  • 安装PHP7以及所需的一些扩展

    $ sudo apt-get install php7.0-fpm php7.0-gd php7.0-mysql php7.0-common php7.0-curl php7.0-cli php7.0-mcrypt php7.0-mbstring php7.0-dom php7.0-dev
    
    
  • 配置 PHP7

    打开php.ini配置文件:

    $ sudo vim /etc/php/7.0/fpm/php.ini
    

    找到 cgi.fix_pathinfo 选项,去掉注释;,然后将值设置为0:

    cgi.fix_pathinfo=0
    

    启用php7.0-mcrypt

    $ sudo phpenmod mcrypt
    

    启动后重启 php7.0-fpm ,输入:

    $ sudo service php7.0-fpm restart
    

MariaDB 安装

$ sudo apt-get install software-properties-common
$ sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xcbcb082a1bb943db
$ sudo add-apt-repository 'deb http://ftp.osuosl.org/pub/mariadb/repo/10.0/ubuntu trusty main'
$ sudo apt-get update
$ sudo apt-get install mariadb-server  //安装过程中会提示输入 Mariadb root 用户管理密码
$ mysql_secure_installation //Mariadb 相关安全配置

其他相关安装

Git 安装

本文通过 Ubuntu PPA 来安装最新版 Git

  • 添加 Git 源

    $ sudo add-apt-repository ppa:git-core/ppa
    
  • 更新软件列表

    $ sudo apt-get update
    
  • 安装 Git

    $ sudo apt-get install git
    
  • 配置 Git 用户名和邮箱

    $ git config --global user.name "gaopeng"
    $ git config --global user.email "gaopeng@lekee.cc
    

    gaopeng 和 gaopeng@lekee.cc 替换成服务器管理者自己的 Git 信息

Composer 安装

下载 Composer
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('SHA384', 'composer-setup.php') === 'e115a8dc7871f15d853148a7fbac7da27d6c0030b848d9b3dc09e2a0388afed865e6a3d6b3c0fad45c48e2b5fc1196ae') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"
配置 Composer
  • 查看环境变量

    $ echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/ bin:/sbin:/bin:/usr/games:/usr/local/games
    
  • 移动 composer.phar 到全局目录 /usr/local/bin/ ,并重命名为 composer

    $ sudo mv composer.phar /usr/local/bin/composer
    
  • Composer 安装全局范围使用

    $ vi ~/.profile
    PATH="$HOME/bin:$PATH"` 下面加入一行
    PATH=$PATH:$HOME/.local/bin:$HOME/bin:$HOME/.composer/vendor/bin
    

Drush 安装

官网安装

$ php -r "readfile('http://files.drush.org/drush.phar');" > drush
$ php drush core-status
$ chmod +x drush
$ sudo mv drush /usr/local/bin
$ drush init

相关常用命令

开启服务

  • 启动 Nginx

    $ sudo service nginx start
    
  • 启动 PHP

    $ sudo service php7.0-fpm start
    
  • 启动 Mariadb

    $ sudo service mysql start
    

重启服务

  • 重启 Nginx

    $ sudo service nginx restart
    
  • 重启 PHP

    $ sudo service php7.0-fpm restart
    
  • 重启 Mariadb

    $ sudo service mysql restart
    

停止服务

  • 停止 Nginx

    $ sudo service nginx stop
    
  • 停止 PHP

    $ sudo service php7.0-fpm stop
    
  • 停止 Mariadb

    $ sudo service mysql stop
    

设置开机自启项

  • php 开机自启

    $ sudo sysv-rc-conf  php7.0-fpm on
    
  • Nginx 开机自启

    $ sudo sysv-rc-conf  nginx on
    
  • Mariadb 开机自启

    $ sudo sysv-rc-conf  mysql on
    

    使用 sysv-rc-conf 命令前先安装
    Ubuntu 14.04 没有安装 sysv-rc-conf

    $ sudo apt-get install sysv-rc-conf
    

常见问题

  • php 不显示

    修改 Nginx 网站配置文件

    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
    

    改为:

    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    
  • sudo: unable to resolve host aliyun-trusty

    几次都碰到这个问题,应该是修改完 hostname 后出现的问题, 修改服务器 hosts 文件就 OK 了

    $ sudo vi /etc/hosts
      127.0.0.1 localhost
      127.0.1.1       localhost.localdomain   localhost
      # The following lines are desirable for IPv6 capable hosts
      ::1     ip6-localhost ip6-loopback
      fe00::0 ip6-localnet
      ff00::0 ip6-mcastprefix
      ff02::1 ip6-allnodes
      ff02::2 ip6-allrouters
      10.165.50.135 aliyun-trusty  // 这个 IP 地址后面改成服务器主机名
    

发布者

rockts

喜欢技术,乐于开源! 乐可开源,想改变的也只有世界!

发表评论

电子邮件地址不会被公开。

This site uses Akismet to reduce spam. Learn how your comment data is processed.