配置开发环境

开发 EduSoho 需安装 PHP、MySQL、Nginx、NodeJS 等环境。本文档提供以下操作系统的开发环境安装:

Ubuntu

安装 PHP

EduSoho 可以运行在 PHP 5.5 及以上版本,推荐安装当前最新稳定版本 PHP 7.1 。

  1. sudo LC_ALL=C.UTF-8 add-apt-repository ppa:ondrej/php
  2. sudo apt-get update
  3. sudo apt-get install php-pear php7.1-cli php7.1-common php7.1-curl \
  4. php7.1-dev php7.1-fpm php7.1-json php7.1-mbstring php7.1-mcrypt \
  5. php7.1-mysql php7.1-opcache php7.1-zip php7.1-intl php7.1-gd php7.1-xml

修改 PHP-FPM 监听方式为127.0.0.1:9000

  1. sudo sed -i 's/listen = .*/listen = 127.0.0.1:9000/g' /etc/php/7.1/fpm/pool.d/www.conf

重启 PHP-FPM 服务进程:

  1. sudo service php7.1-fpm restart

安装 MySQL

EduSoho 可以运行在 MySQL 5.5 及以上版本,推荐安装当前最新稳定版本 MySQL 5.7。

配置 MySQL 5.7 的源:

  1. # 可在 http://dev.mysql.com/downloads/repo/apt/ 页面找到 mysql-apt-config 的最新版本。
  2. wget http://dev.mysql.com/get/mysql-apt-config_0.8.7-1_all.deb
  3. sudo dpkg -i mysql-apt-config_0.8.7-1_all.deb

这时会弹出让你选择,将:

  • MySQL Server修改为: mysql-5.7
  • MySQL Tools & Connectors (Currently selected: Enabled)修改为Disabled
  • MySQL Preview Packages修改过为 Disabled。
  1. sudo apt-get update
  2. sudo apt-get install mysql-server

安装过程中会提示设置 MySQL 的 root 密码,按回车即可,表示密码为空。

注意

为方便开发,这里设置了 MySQL 的 root 密码为空。如在生产环境,请勿这样做,需设置一定强度的密码。

MySql 5.7.6 起,安装时如果 root 不设置密码,那么默认会采用auth_socket的方式登陆 MySQL 。也就是登陆 MySQL 时验证你的 Linux 的当前用户是否为 root,如果不是就不能登陆。在auth_socket模式下,应用程序通过数据库的用户名、密码是无法连接的,这就需要我们将数据库的登陆模式,改为mysql_native_password模式。

进入数据库:sudo mysql -uroot,执行:

  1. ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '';
  2. FLUSH PRIVILEGES;
  3. exit;

安装 Nginx

  1. sudo add-apt-repository ppa:nginx/stable
  2. sudo apt-get update
  3. sudo apt-get install nginx

验证 Nginx 服务启动是否成功:

  1. echo "Hello, EduSoho!" >> /var/www/index.html
  2. echo "<?php \nphpinfo();" >> /var/www/phpinfo.php

在浏览器中打开http://localhost,出现Hello, EduSoho!表示 Nginx 启动成功。在浏览器中打开http://localhost/phpinfo.php,出现 PHP 配置相关信息,表示 PHP 配置成功。

如启动失败,可通过查看/var/log/nginx/error.log日志文件来获得错误信息。

安装 Node.js

  1. curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
  1. echo "
  2. deb https://mirrors.tuna.tsinghua.edu.cn/nodesource/deb_6.x trusty main
  3. deb-src https://mirrors.tuna.tsinghua.edu.cn/nodesource/deb_6.x/ trusty main
  4. " | sudo tee /etc/apt/sources.list.d/nodesource.list
  1. sudo apt-get update
  2. sudo apt-get install -y nodejs

安装 yarn:

  1. sudo npm install -g yarn

配置 npm、yarn 源为国内源,以大幅提升NPM的安装速度:

  1. sudo npm config set registry https://registry.npm.taobao.org
  2. sudo yarn config set registry https://registry.npm.taobao.org

安装 Git

  1. sudo apt-add-repository ppa:git-core/ppa
  2. sudo apt-get update
  3. sudo apt-get install git

安装 phpMyAdmin

phpMyAdmin 是一款方便易用的 MySql 数据库管理软件。可以在 官网 下载最新版的 phpMyAdmin。

下载后,将 phpMyAdmin 解压到:/var/www/phpmyadmin目录下,创建配置文件config.inc.php,内容如下:

  1. <?php
  2. $i = 0;
  3. /* Server: localhost [1] */
  4. $i++;
  5. $cfg['Servers'][$i]['verbose'] = '127.0.0.1';
  6. $cfg['Servers'][$i]['host'] = '127.0.0.1';
  7. $cfg['Servers'][$i]['port'] = '';
  8. $cfg['Servers'][$i]['socket'] = '';
  9. $cfg['Servers'][$i]['auth_type'] = 'config';
  10. $cfg['Servers'][$i]['user'] = 'root';
  11. $cfg['Servers'][$i]['password'] = '';
  12. $cfg['Servers'][$i]['AllowNoPassword'] = true;

在打开浏览器打开 http://localhost/phpmyadmin/ ,即可进入 phpMyAdmin。

macOS

Homebrew 是 macOS 下流行的包管理软件,下面通过 Homebrew 来安装各软件包。

安装 PHP

安装 PHP 软件包:

  1. brew install php@7.1

安装后 php.ini 以及 fpm 的配置文件均在/usr/local/etc/php/7.1/目录下。

设置环境变量:

安装后会提示你配置环境变量,如:

  1. echo 'export PATH="/usr/local/opt/php@7.1/bin:$PATH"' >> ~/.bash_profile
  2. echo 'export PATH="/usr/local/opt/php@7.1/sbin:$PATH"' >> ~/.bash_profile

这里的 ~/.bashrc 可能会是 ~/.zshrc,或其他,有实际环境决定。复制提示中的环境变量语句,并执行。

让环境变量立即生效:

  1. source `~/.bashrc` # 或者 ~/.zshrc 或...

启动 PHP-FPM 服务:

  1. brew services start php@7.1

提示

可以通过以下命令重启、停止 PHP-FPM 服务:

  1. brew services restart php@7.1 # 重启
  2. brew services stop php@7.1 # 停止

验证 PHP-FPM 服务是否启动成功:

  1. ps aux | grep php-fpm

如存在相关 PHP-FPM 进程,则表明启动成功。

安装 Nginx

  1. brew install nginx

Nginx 安装后,可在/usr/local/etc/nginx目录下,找到 Nginx 系列配置文件。

修改配置:

主要修改如下:

  • 监听端口8080,改为80;
  • 调整localhost的root目录到/var/www下;
  • 指定error_log, access_log日志目录到/var/log/nginx目录下;
  • 开启localhost对.php文件结尾的解析;
  • 调整virtual server的配置目录为sites-enabled,这样添加virtual server只需在sites-enabled目录下添加相应的配置文件即可。
    其中第2,3,5条规则调整是为了跟 Ubuntu 的配置风格保持一致。

建立目录:

  1. sudo mkdir -p /var/www
  2. sudo chown root:staff /var/www
  3. sudo chmod g+w /var/www
  4. sudo mkdir -p /var/log/nginx
  5. mkdir /usr/local/etc/nginx/sites-enabled

替换 /usr/local/etc/nginx/nginx.conf 的配置内容为:

  1. user nobody;
  2. worker_processes 1;
  3. error_log /var/log/nginx/error.log debug;
  4. pid /var/run/nginx.pid;
  5. events {
  6. worker_connections 1024;
  7. }
  8. http {
  9. include mime.types;
  10. default_type application/octet-stream;
  11. log_format main '$remote_addr - $remote_user [$time_local] "$request" '
  12. '$status $body_bytes_sent "$http_referer" '
  13. '"$http_user_agent" "$http_x_forwarded_for"';
  14. access_log /var/log/nginx/access.log main;
  15. sendfile on;
  16. keepalive_timeout 65;
  17. server {
  18. listen 80;
  19. server_name localhost;
  20. root /var/www;
  21. charset utf-8;
  22. location / {
  23. index index.html index.htm index.php;
  24. }
  25. location ~ \.php$ {
  26. fastcgi_pass 127.0.0.1:9000;
  27. fastcgi_index index.php;
  28. fastcgi_split_path_info ^(.+\.php)(/.*)$;
  29. include fastcgi_params;
  30. fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
  31. }
  32. }
  33. include sites-enabled/*;
  34. }

启动 Nginx 服务:

  1. sudo brew services start nginx

也可通过sudo brew services restart|stop nginx命令来重启、停止服务。

注意

由于系统限制,使用80及低于80端口的应用程序需以root权限启动。所以启动80端口的Nginx需通过sudo来启动。

验证 Nginx 服务启动是否成功:

  1. echo "Hello, EduSoho!" >> /var/www/index.html
  2. echo "<?php \nphpinfo();" >> /var/www/phpinfo.php

在浏览器中打开http://localhost,出现Hello, EduSoho!表示 Nginx 启动成功。在浏览器中打开http://localhost/phpinfo.php,出现 PHP 配置相关信息,表示 PHP 配置成功。

如启动失败,可通过查看/var/log/nginx/error.log日志文件来获得错误信息。

安装 MySQL

  1. brew install mysql

启动 MySQL 服务:

  1. brew services start mysql

也可通过brew services restart mysqlbrew services stop mysql命令来重启、停止服务。

Mysql的root密码默认为,可以通过:mysql -uroot命令进入mysql。

注意

为方便开发,这里设置了 MySQL 的 root 密码为空。如在生产环境,请勿这样做,需设置一定强度的密码。

MySql 5.7.6 起,安装时如果 root 不设置密码,那么默认会采用auth_socket的方式登陆 MySQL 。也就是登陆 MySQL 时验证你的 Linux 的当前用户是否为 root,如果不是就不能登陆。在auth_socket模式下,应用程序通过数据库的用户名、密码是无法连接的,这就需要我们将数据库的登陆模式,改为mysql_native_password模式。

进入数据库:sudo mysql -uroot,执行:

  1. ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '';
  2. FLUSH PRIVILEGES;
  3. exit;

安装 phpMyAdmin

phpMyAdmin 是一款方便易用的 MySql 数据库管理软件。可以在 官网 下载最新版的 phpMyAdmin。

下载后,将 phpMyAdmin 解压到:/var/www/phpmyadmin目录下,创建配置文件config.inc.php,内容如下:

  1. <?php
  2. $i = 0;
  3. /* Server: localhost [1] */
  4. $i++;
  5. $cfg['Servers'][$i]['verbose'] = '127.0.0.1';
  6. $cfg['Servers'][$i]['host'] = '127.0.0.1';
  7. $cfg['Servers'][$i]['port'] = '';
  8. $cfg['Servers'][$i]['socket'] = '';
  9. $cfg['Servers'][$i]['auth_type'] = 'config';
  10. $cfg['Servers'][$i]['user'] = 'root';
  11. $cfg['Servers'][$i]['password'] = '';
  12. $cfg['Servers'][$i]['AllowNoPassword'] = true;

在打开浏览器打开 http://localhost/phpmyadmin/ ,即可进入 phpMyAdmin。

安装 NodeJS

  1. brew install node

安装 yarn:

  1. npm install -g yarn

配置 NPM、YARN 源为国内源,以大幅提升NPM的安装速度:

  1. npm config set registry https://registry.npm.taobao.org
  2. yarn config set registry https://registry.npm.taobao.org

Windows

TODO…