目录
- 一、初始化环境
- 二、安装 Nginx
- 三、安装 MySQL
- 四、安装 PHP
- 五、上线 EduSoho
- 六、验证
- FAQ
一、初始化环境
1、安装wget
如果系统已安装wget,请跳过此步骤
yum install wget
2、关闭防火墙/Selinux
systemctl stop firewalld.service
systemctl disable firewalld.service
在命令行输入:
setenforce 0
或者修改配置文件:
sudo vi /etc/selinux/config
将SELINUX=enforcing
改为:SELINUX=disabled
二、安装 Nginx
1、安装nginx源
#下载源
wget https://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
#安装源
rpm -ivh nginx-release-centos-7-0.el7.ngx.noarch.rpm
2、安装配置nginx包
#安装nginx
yum install -y nginx
#修改nginx默认配置
vim /etc/nginx/nginx.conf
#在http{}配置中加入:
client_max_body_size 1024M;
3、启动nginx
systemctl start nginx.service
4、设置nginx为开机启动
systemctl enable nginx.service
三、安装 MySQL
1、安装mysql官方源
注意 CentOS 7 默认 mysql 版本过低,这里我们采用 mysql 官方发行的 MySQL57 源,当然,也可以安装MySQL80的源。
wget https://repo.mysql.com/mysql57-community-release-el7.rpm
rpm -ivh mysql57-community-release-el7.rpm
2、建立 Yum 缓存
yum clean all
yum makecache
3、安装mysql包
yum install -y mysql mysql-server
4、启动mysql
systemctl start mysqld.service
5、设置mysql为开机启动
systemctl enable mysqld.service
6、mysql 配置
默认安装结束,mysql的root密码不为空,系统默认创建临时密码,执行
grep 'temporary password' /var/log/mysqld.log
可以看到密码,如例子
2019-02-28T06:52:06.110216Z 1 [Note] A temporary password is generated for root@localhost: **************
后面*
的位置就是临时密码,要手动修改mysql root
账户密码,否则mysql会不允许创核表等操作,mysql 修改密码操作请自行搜索解决。
修改密码:
mysqladmin -u root -p'<初始密码>' password '<新密码>'
四、安装 PHP
参考:https://www.myfreax.com/install-php-7-on-centos-7/
1、安装php源
yum install -y epel-release yum-utils
yum install -y http://rpms.remirepo.net/enterprise/remi-release-7.rpm
2、启用 73 版本
yum-config-manager --enable remi-php73
3、安装php包
# 上一步源中,可供安装的php版本有很多,本文安装的php73
yum install -y \
php \
php-cli \
php-common \
php-fpm \
php-gd \
php-mbstring \
php-intl \
php-mcrypt \
php-mysql \
php-pdo \
php-xml
4、修改PHP配置
编辑 php.ini , 将以下配置的值修改为1024M
vi /etc/php.ini
post_max_size = 1024M
memory_limit = 1024M
upload_max_filesize = 1024M
5、启动php-fpm
systemctl start php-fpm.service
6、设置fpm开机启动
systemctl enable php-fpm.service
五、上线 EduSoho
1、创建EduSoho数据库
这里创不创建无所谓,在浏览器访问的时候会自动创建。
-
登录mysql
mysql -uroot -p #按照提示,如果设置了密码,请输入正确的密码,`Enter`键登录mysql;如果未设置密码,请直接`Enter`键登录mysql.
-
创建数据库
CREATE DATABASE edusoho DEFAULT CHARACTER SET utf8; GRANT ALL PRIVILEGES ON `edusoho`.* TO 'esuser'@'%' IDENTIFIED BY 'Zhurs@123'; flush privileges;
2、下载解压EduSoho
资源包下载:http://www.edusoho.com/open/show
安装文档:http://www.qiqiuyu.com/my/course/20
3、增加 EduSoho nginx 配置
注意1:教培版和企培版的项目包目录有些许不一样,稍微更改即可。
注意2:edusoho访问目录是edusoho/web,只有在nginx或者Apache配置里面把根目录定位到web目录下,才不会出现奇怪的问题,否则就会出现图片不能显示或者文件无法上传的问题。
vim /etc/nginx/conf.d/edusoho.conf
# 注意端口不要冲突
server {
listen 80;
server_name www.example.com;
root /var/www/edusoho/web;
access_log /var/log/nginx/edusoho.access.log;
error_log /var/log/nginx/edusoho.error.log;
location / {
index app.php;
try_files $uri @rewriteapp;
}
location @rewriteapp {
rewrite ^(.*)$ /app.php/$1 last;
}
location ~ ^/udisk {
internal;
root /var/www/edusoho/app/data/;
}
location ~ ^/(app|app_dev)\.php(/|$) {
fastcgi_pass 127.0.0.1:9000;
fastcgi_split_path_info ^(.+\.php)(/.*)$;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param HTTPS off;
fastcgi_param HTTP_X-Sendfile-Type X-Accel-Redirect;
fastcgi_param HTTP_X-Accel-Mapping /udisk=/var/www/edusoho/app/data/udisk;
fastcgi_buffer_size 128k;
fastcgi_buffers 8 128k;
}
location ~* \.(jpg|jpeg|gif|png|ico|swf)$ {
expires 3y;
access_log off;
gzip off;
}
location ~* \.(css|js)$ {
access_log off;
expires 3y;
}
location ~ ^/files/.*\.(php|php5)$ {
deny all;
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_split_path_info ^(.+\.php)(/.*)$;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param HTTPS off;
include fastcgi_params;
}
}
4、重启nginx服务
systemctl restart nginx.service
六、验证
本地浏览器访问:http://192.168.56.153/
FAQ
访问 http://192.168.56.153/ 后,在预检查阶段显示 web 不可写:
解决方案:对项目edusoho
目录 777 权限即可
chmod 777 -R edusoho
# 或
chown apache.apache -R edusoho