Linuxr计算机操作系统hel6.5-lnmp架构解析
lnmp架构:Linux+Nginx+MySQL+PHP的网站服务器架构
Linux:计算机操作系统
Nginx:是一个高性能的HTTP和反向代理服务器,Nginx性能稳定、功能丰富、运维简单、处理静态文件速度
一.lnmp架构 lnmp架构:Linux+Nginx+MySQL+PHP的网站服务器架构 Linux:计算机操作系统 Nginx:是一个高性能的HTTP和反向代理服务器,Nginx性能稳定、功能丰富、运维简单、处理静态文件速度快且消耗系统资源极少 Mysql:一个小型关系型数据库管理系统 PHP:是一种在服务器端执行的嵌入HTML文档的脚本语言 这四种免费的开源软件,组合到一起,成为一个免费、高效、扩展性强的网站服务系统。 二.mysql的安装部署 1.mysql的安装(采用源码包(mysql-boost-5.7.17.tar.gz)安装,没有兼容性的限制) tar mysql-boost-5.7.17.tar.gz ##解包 (1)编译cmake yum install cmake-2.8.12.2-4.el6.x86_64.rpm CMake是一个跨平台的编译工具,可以用简单的语句来描述所有平台的安装(编译过程)。他能够输出各种各样的makefile或者project文件,能测试编译器所支持的C++特性,类似UNIX下的automake。只是CMake的组态档取名为 CMakeLists.txt。Cmake 并不直接建构出最终的软件,而是产生标准的建构档(如 Unix 的 Makefile 或 Windows Visual C++ 的 projects/workspaces),然后再依一般的建构方式使用 cmake -DCMAKE_INSTALL_PREFIX=/usr/local/lnmp/mysql #安装目录 -DMYSQL_DATADIR=/usr/local/lnmp/mysql/data #数据库存放目录 -DMYSQL_UNIX_ADDR=/usr/local/lnmp/mysql/data/mysql.sock #Unix socket文件路径 -DWITH_MYISAM_STORAGE_ENGINE=1 #安装 myisam 存储引擎 -DWITH_INNOBASE_STORAGE_ENGINE=1 #安装 innodb 存储引擎 -DDEFAULT_CHARSET=utf8 #使用utf8字符 -DDEFAULT_COLLATION=utf8_general_ci #校验字符 -DEXTRA_CHARSETS=all #安装所有扩展字符集 编译过程会有报错(安装一些依赖包): yum install ncurses-devel -y yum install bison -y yum install -y gcc gcc-c++ ##解释器 报错重新编译时,需要清除旧的对象文件和缓存信息 rm -f CmakeCache.txt (2)编译安装make && make install(磁盘空间要足够,不然会报错) 2.mysql的配置 cp /etc/my.cnf /etc/my.cnf.backup ##备份原来的mysql的my.cnf (1)cp /usr/local/lamp/mysql/support-files/my-default.cnf /etc/my.cnf ##为了方便编辑把配置文件复制到/etc下 (2)vim /etc/my.cnf ##mysql的配置文件 : basedir = /usr/local/lamp/mysql ##mysql的主目录 datadir = /usr/local/lamp/mysql/data ##数据目录 socket = /usr/local/lamp/mysql/data/mysql.sock ##mysql连接端口的路径 (3)groupadd -g 27 mysql useradd -u 27 -g 27 mysql ##建立mysql的用户以及用户组 id mysql cd /usr/local/lamp/mysql/ (4)chown mysql.mysql . -R ##修改mysql的目录为仅mysql可读写 (5)vim ~/.bash_profile ##系统的环境变量的配置文件,把mysql的命令的路径添加进去 source ~/.bash_profile ##更新配置 (6)初始化mysql mysqld --user=mysql --initialize ###初始化之后会提供初始密码以及生成mysql的data目录(密码为:wC#gTjV/g3:K) (7)chown root . -R chown mysql data/ -R ###除了mysql的data目录外,别的目录的为了数据的安全,用户都设定为超级用户 (8)把mysql的脚本复制到/etc/init.d/ ##方便操作 /etc/init.d/mysqld start ##开启mysql端口3306 (9)修改密码 mysql_secure_installation ##修改初始密码为自己的设定的密码 enter password for user root:wC#gTjV/g3:K ##这里填写之前初始化生成的随机密码 (10)登陆验证(成功登陆mysql) 三.php的安装部署 1.php的安装(同样使用源码包安装(php-5.6.35.tar.bz2)) tar jxf php-5.6.35.tar.bz2 ##解包 (1)编译(--with表示添加的模块,要的模块--help查看之后直接添加即可) 报错的解决(主要就是依赖包的安装): yum install libxml2-devel -y yum install libmcrypt-2.5.8-9.el6.x86_64.rpm libmcrypt-devel-2.5.8-9.el6.x86_64.rpm -y (2)编译安装 make && make install ##编译,安装 2.php的配置 (1)创建nginx的用户 useradd nginx id nginx (2)在php-fpm的配置文件中打开pid = run/php-fpm.pid vim /usr/local/lamp/php/etc/php-fpm.conf.default :pid = run/php-fpm.pid ##25行打开pid (3)把php-fpm和php的配置文件复制到方便操作的路径 cp php-fpm.conf.default php-fpm.conf cp php-5.6.35/php.ini-production /usr/local/lamp/php/etc/php.ini (4)vim php.ini : date.timezone =Asia/Shanghai ##修改时区 pdo_mysql.default_socket=/usr/local/lamp/mysql/data/mysql.sock ##php连接mysql的通信接口 mysql.default_socket =/usr/local/lamp/mysql/data/mysql.sock mysqli.default_socket =/usr/local/lamp/mysql/data/mysql.sock (5)复制php-fpm的启动脚本到/etc/init.d/ php-fpm:PHP的解释器是php-cgi,php-cgi只是个CGI程序,他自己本身只能解析请求,返回结果,不会进程管理,所以就出现了一些能够调度php-cgi进程的程序,比如php-fpm是进程管理器,PHP-FPM是一个实现了Fastcgi的程序,Fastcgi会先启一个master,解析配置文件,初始化执行环境,然后再启动多个worker。当请求过来时,master会传递给一个worker,然后立即可以接受下一个请求,这就是fastcgi的对进程的管理。 /etc/init.d/php-fpm start ##开启php-fpm端口9000 (6)查看端口 四.nginx的安装配置 1.nginx的安装(源码包安装) tar zxf nginx-1.14.0.tar.gz ##解包 (1)保护nginx的安全 vim src/core/nginx.h ##删除版本号,当外界访问时看不见版本号,增加了安全性 vim auto/cc/gcc #CFLAGS="$CFLAGS -g" ##注释debug,这样产生的nginx的程序只有几百k (2)编译 ./configure --prefix=/usr/local/lnmp/nginx --with-http_ssl_module --with-http_stub_status_module --with-threads --with-file-aio --user=nginx --group=nginx 报错解决: yum install pcre-devel -y (3)编译安装 make && make install 2.nginx的配置 (1)vim /usr/local/lamp/nginx/conf/nginx.conf ##nginx的配置文件 以php结尾的访问,让fastcgi去管理这些访问进程,php-fpm的端口是9000, location / { root html; index index.php index.html index.htm; ##php的默认发布目录是index.php } (2)重启nginx nginx ##/usr/local/lamp/nginx/sbin/nginx,nginx的脚本路径 nginx -t ##检验配置文件是否合法 ln -s /usr/local/lamp/nginx/sbin/nginx /usr/local/sbin/ ##方便操作创建nginx的脚本链接到/sbin下 nginx -s reload ##更新配置文件 3.在nginx上验证php是否配置成功 ##物理机访问成功 五.论坛包的配置 1.解压Discuz_X3.2_SC_UTF8.zip到nginx的默认发布目录 unzip Discuz_X3.2_SC_UTF8.zip -d /usr/local/lamp/nginx/html/ mv upload/ bbs ##把论坛的upload目录更名为bbs ##网络访问安装界面进行安装mysql系统,点击“我同意” 2.校验目录权限 (1)权限不够 (2)在/usr/local/lamp/nginx/html/bbs目录下设定目录的权限 (3)填写数据库的信息以及管理员的密码 (4)连接mysql数据库(权限不够) nginx不属于mysql用户组,也不是mysql用户,权限肯定不够,chmod 755 data/ 数据库成功安装 六.测试论坛 1.成功登陆 记得删除安装的界面install/index.php,避免二次安装 当再次安装时,已经找不到安装界面 2.论坛的数据也成功接入到mysql数据库 (编辑:晋中站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |