配置开发环境
开发 EduSoho 需安装 PHP、MySQL、Nginx、NodeJS 等环境。本文档提供以下操作系统的开发环境安装:
Ubuntu
安装 PHP
EduSoho 可以运行在 PHP 5.5 及以上版本,推荐安装当前最新稳定版本 PHP 7.1 。
sudo LC_ALL=C.UTF-8 add-apt-repository ppa:ondrej/php
sudo apt-get update
sudo apt-get install php-pear php7.1-cli php7.1-common php7.1-curl \
php7.1-dev php7.1-fpm php7.1-json php7.1-mbstring php7.1-mcrypt \
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
:
sudo sed -i 's/listen = .*/listen = 127.0.0.1:9000/g' /etc/php/7.1/fpm/pool.d/www.conf
重启 PHP-FPM 服务进程:
sudo service php7.1-fpm restart
安装 MySQL
EduSoho 可以运行在 MySQL 5.5 及以上版本,推荐安装当前最新稳定版本 MySQL 5.7。
配置 MySQL 5.7 的源:
# 可在 http://dev.mysql.com/downloads/repo/apt/ 页面找到 mysql-apt-config 的最新版本。
wget http://dev.mysql.com/get/mysql-apt-config_0.8.7-1_all.deb
sudo dpkg -i mysql-apt-config_0.8.7-1_all.deb
这时会弹出让你选择,将:
MySQL Server
修改为: mysql-5.7MySQL Tools & Connectors (Currently selected: Enabled)
修改为Disabled
。MySQL Preview Packages
修改过为 Disabled。
sudo apt-get update
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
,执行:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '';
FLUSH PRIVILEGES;
exit;
安装 Nginx
sudo add-apt-repository ppa:nginx/stable
sudo apt-get update
sudo apt-get install nginx
验证 Nginx 服务启动是否成功:
echo "Hello, EduSoho!" >> /var/www/index.html
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
curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
echo "
deb https://mirrors.tuna.tsinghua.edu.cn/nodesource/deb_6.x trusty main
deb-src https://mirrors.tuna.tsinghua.edu.cn/nodesource/deb_6.x/ trusty main
" | sudo tee /etc/apt/sources.list.d/nodesource.list
sudo apt-get update
sudo apt-get install -y nodejs
安装 yarn:
sudo npm install -g yarn
配置 npm、yarn 源为国内源,以大幅提升NPM的安装速度:
sudo npm config set registry https://registry.npm.taobao.org
sudo yarn config set registry https://registry.npm.taobao.org
安装 Git
sudo apt-add-repository ppa:git-core/ppa
sudo apt-get update
sudo apt-get install git
安装 phpMyAdmin
phpMyAdmin 是一款方便易用的 MySql 数据库管理软件。可以在 官网 下载最新版的 phpMyAdmin。
下载后,将 phpMyAdmin 解压到:/var/www/phpmyadmin
目录下,创建配置文件config.inc.php
,内容如下:
<?php
$i = 0;
/* Server: localhost [1] */
$i++;
$cfg['Servers'][$i]['verbose'] = '127.0.0.1';
$cfg['Servers'][$i]['host'] = '127.0.0.1';
$cfg['Servers'][$i]['port'] = '';
$cfg['Servers'][$i]['socket'] = '';
$cfg['Servers'][$i]['auth_type'] = 'config';
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = '';
$cfg['Servers'][$i]['AllowNoPassword'] = true;
在打开浏览器打开 http://localhost/phpmyadmin/ ,即可进入 phpMyAdmin。
macOS
Homebrew 是 macOS 下流行的包管理软件,下面通过 Homebrew 来安装各软件包。
安装 PHP
安装 PHP 软件包:
brew install php@7.1
安装后 php.ini 以及 fpm 的配置文件均在/usr/local/etc/php/7.1/
目录下。
设置环境变量:
安装后会提示你配置环境变量,如:
echo 'export PATH="/usr/local/opt/php@7.1/bin:$PATH"' >> ~/.bash_profile
echo 'export PATH="/usr/local/opt/php@7.1/sbin:$PATH"' >> ~/.bash_profile
这里的 ~/.bashrc
可能会是 ~/.zshrc
,或其他,有实际环境决定。复制提示中的环境变量语句,并执行。
让环境变量立即生效:
source `~/.bashrc` # 或者 ~/.zshrc 或...
启动 PHP-FPM 服务:
brew services start php@7.1
提示
可以通过以下命令重启、停止 PHP-FPM 服务:
brew services restart php@7.1 # 重启
brew services stop php@7.1 # 停止
验证 PHP-FPM 服务是否启动成功:
ps aux | grep php-fpm
如存在相关 PHP-FPM 进程,则表明启动成功。
安装 Nginx
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 的配置风格保持一致。
建立目录:
sudo mkdir -p /var/www
sudo chown root:staff /var/www
sudo chmod g+w /var/www
sudo mkdir -p /var/log/nginx
mkdir /usr/local/etc/nginx/sites-enabled
替换 /usr/local/etc/nginx/nginx.conf
的配置内容为:
user nobody;
worker_processes 1;
error_log /var/log/nginx/error.log debug;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name localhost;
root /var/www;
charset utf-8;
location / {
index index.html index.htm index.php;
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_split_path_info ^(.+\.php)(/.*)$;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
}
}
include sites-enabled/*;
}
启动 Nginx 服务:
sudo brew services start nginx
也可通过sudo brew services restart|stop nginx
命令来重启、停止服务。
注意
由于系统限制,使用80及低于80端口的应用程序需以root
权限启动。所以启动80端口的Nginx需通过sudo
来启动。
验证 Nginx 服务启动是否成功:
echo "Hello, EduSoho!" >> /var/www/index.html
echo "<?php \nphpinfo();" >> /var/www/phpinfo.php
在浏览器中打开http://localhost
,出现Hello, EduSoho!
表示 Nginx 启动成功。在浏览器中打开http://localhost/phpinfo.php
,出现 PHP 配置相关信息,表示 PHP 配置成功。
如启动失败,可通过查看/var/log/nginx/error.log
日志文件来获得错误信息。
安装 MySQL
brew install mysql
启动 MySQL 服务:
brew services start mysql
也可通过brew services restart mysql
、brew 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
,执行:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '';
FLUSH PRIVILEGES;
exit;
安装 phpMyAdmin
phpMyAdmin 是一款方便易用的 MySql 数据库管理软件。可以在 官网 下载最新版的 phpMyAdmin。
下载后,将 phpMyAdmin 解压到:/var/www/phpmyadmin
目录下,创建配置文件config.inc.php
,内容如下:
<?php
$i = 0;
/* Server: localhost [1] */
$i++;
$cfg['Servers'][$i]['verbose'] = '127.0.0.1';
$cfg['Servers'][$i]['host'] = '127.0.0.1';
$cfg['Servers'][$i]['port'] = '';
$cfg['Servers'][$i]['socket'] = '';
$cfg['Servers'][$i]['auth_type'] = 'config';
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = '';
$cfg['Servers'][$i]['AllowNoPassword'] = true;
在打开浏览器打开 http://localhost/phpmyadmin/ ,即可进入 phpMyAdmin。
安装 NodeJS
brew install node
安装 yarn:
npm install -g yarn
配置 NPM、YARN 源为国内源,以大幅提升NPM的安装速度:
npm config set registry https://registry.npm.taobao.org
yarn config set registry https://registry.npm.taobao.org
Windows
TODO…