• linux环境安装(l6.5 n1.12 m5.6 p7.1)


    Linux手动配置PHP+MYSQL+Nginx 详细步骤

    linux 环境: centos 7.4;

    注意:有一些服务器需要防火墙或安全策略开放80端口;

    一 、 在 CentOS 7 中安装 Nginx 和 PHP7-FPM

    1、我们要先添加 EPEL 包的仓库源。使用如下命令:

    yum -y install epel-release

    2、安装完EPEL 源之后,我们就可以通过仓库源安装nginx了,代码如下:

    yum -y install nginx

    3、 执行nginx -v,会出现如下的信息:

    nginx -v

    4、 把nginx设置为开机自启动。

    systemctl start nginx
    systemctl enable nginx

    5、浏览器访问你得公网IP(注意服务器要开放80端口) 出现如下界面说明nginx安装和启动成功了。

    然后我们还需要为 php7-fpm 添加另外一个仓库。互联网中有很个远程仓库提供了 PHP 7 系列包,我在这里使用的是 webtatic。

    6 、添加 PHP7-FPM webtatic 仓库:

    rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

    7、 安装 PHP7-FPM 以及 一些包:

    yum -y install php71w-fpm php71w-cli php71w-gd php71w-mcrypt php71w-mysql php71w-pdo php71w-xml php71w-pear 
    php71w-mbstring php71w-mbstring php71w-json php71w-pecl-apcu php71w-pecl-apcu-devel

    在此介绍一下各安装包:

    PHP-CLI

    FPM是作为Apache或者Nginx等服务器软件处理PHP文件得扩展。

    PHP的默认版本是不支持线程安全的,这个线程安全问题可以去了解PHP扩展开发方面的相关知识,这是因为C语言方面的问题了。

    cli和fpm是php的两种运行方式,而线程安全和非线程安全应该才能说的上是版本。是否开启线程安全可以在编译PHP的时候进行选择的。

    PHP-CLI模式优点

    使用多进程, 子进程结束以后, 内核会负责回收资源使用多进程,子进程异常退出不会导致整个进程Thread退出. 父进程还有机会重建流程.

    一个常驻主进程, 只负责任务分发, 逻辑更清楚.

    完全支持多线程

    如上,可以实现定时任务

    开发桌面应用就是使用PHP-CLI和GTK包

    linux下用php编写shell脚本(例如swoole_server就只能用于php-cli环境)

    怎么运行PHP-CLI脚本?

    第一种方法是使用php -f /path/to/yourfile.php。调用PHP CLI解释器,并给脚本传递参数。这种方法首先要设置php解释器的路径,Windows平台在运行CLI之前,需设置类似path c:php的命令,也失去了CLI脚本第一行的意义,因此不建议使用该方法。

    第二种方法是首先运行chmod+x <要运行的脚本文件名>(UNIX/Linux环境),将该PHP文件置为可执行权限,然后在CLI脚本头部第一行加入声明(类似于#! /usr/bin/php或PHP CLI解释器位置),接着在命令行直接执行。这是CLI首选方法,建议采用

    PHP-mcrypt

    mcrypt 是php里面重要的加密支持扩展库,linux环境下该库在默认情况下不开启。window环境下,PHP>=5.3,默认开启mcrypt扩展。

    php-pear

    PEAR是PHP扩展与应用库(the PHP Extension and Application Repository)的缩写。它是一个PHP扩展及应用的一个代码仓库,简单地说,PEAR之于PHP就像是CPAN(Comprehensive Perl Archive Network)之于Perl。

    PEAR的基本目标是发展成为PHP扩展和库代码的知识库,而这个项目最有雄心的目标则是试图定义一种标准,这种标准将帮助开发者编写可移植、可重用的代码。

    Internet上已经有关于该项目的一些文档。例如,一些初始的资料已经可以在PHP正式手册中找到,更多的资料即将加入。

    php-mbstring

    mbstring库 全称是Multi-Byte String 即各种语言都有自己的编码,他们的字节数是不一样的,目前php内部的编码只支持ISO-8859-*, EUC-JP, UTF-8。

    其他的编码的语言是没办法在php程序上正确显示的。解决的方法就是通过php的mbstring函数库来解决其安装是在编译php的时候加上--enable-mbstring=?"="后面就是跟需要支持的语言,具体参数如下:

    --enable-mbstring=cn for Simplified Chinese support, 
    --enable-mbstring=tw for Traditional Chinese support,
    --enable-mbstring=kr for Korean support, 
    --enable-mbstring=ru for Russian support, 
    --enable-mbstring=ja for Japanese support.

    php-pecl-apcu

    类似于缓存,php-pecl-apcu会有效的提高php执行速度。

    8 、验证PHP 是否正确安装:

    php -v

    二 、 配置 PHP7-FPM

    在这一个步骤中,我们将配置 php-fpm 与 Nginx 协同运行。Php7-fpm 将使用 nginx 用户来运行,并监听 9000 端口;

    1 、 使用 vim 编辑默认的 php7-fpm 配置文件。

    vim /etc/php-fpm.d/www.conf

    在第 8 行和第 10行,

    user = nginx
    group = nginx

    在第 22 行,确保 php-fpm 运行在指定端口。

    listen = 127.0.0.1:9000

    取消第 366-370 行的注释,启用 php-fpm 的系统环境变量。

    env[HOSTNAME] = $HOSTNAME
    env[PATH] = /usr/local/bin:/usr/bin:/bin
    env[TMP] = /tmp
    env[TMPDIR] = /tmp
    env[TEMP] = /tmp

    保存文件并退出 vim 编辑器。

    2、 接下来我们编辑nginx.conf的配置文件,让nginx能够解析php文件

    vim /etc/nginx/nginx.conf

    然后在nginx.conf里面插入如下代码,记住格式必须要一致,空格之类的不能多也不能少,不然等下重启nginx的时候会报错。

    location ~ .php$ {
    #root html;
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    #fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
    }

    然后启动 php-fpm 和 Nginx,并且将php-fpm设置为随开机启动的服务。

    service nginx restart
    systemctl start php-fpm
    systemctl enable php-fpm

    PHP7-FPM 配置完成。

    3、测试PHP结果是否成功?

    在我们nginx目录下创建phpinfo.php文件(目录为/usr/share/nginx/html)

    vi /usr/share/nginx/html/phpinfo.php

    输入以下信息,保存退出

    <?php
    phpinfo();

    浏览器再访问地址:http://服务器公网ip/phpinfo.php,出现php的信息之后说明配置成功。

    三 、 安装和配置 MariaDB(如需要安装mysql ,请继续往下看);

    我这里先使用 MariaDB 作为数据库。

    1 、可以直接使用 yum 命令从 CentOS 默认远程仓库中安装

    yum -y install mariadb mariadb-server

    2 、启动 MariaDB,并将其添加到随系统启动的服务中去。

    systemctl start mariadb
    systemctl enable mariadb

    3 、现在开始配置 MariaDB 的 root 用户密码。

    mysql_secure_installation

    输入完之后,会要求输出现在的密码,默认安装完之后密码为空,直接回车。

    键入 Y ,然后设置 MariaDB 的 root 密码。

    Set root password? [Y/n] Y
    New password:
    Re-enter new password:
    Remove anonymous users? [Y/n] Y
    Disallow root login remotely? [Y/n] Y
    Remove test database and access to it? [Y/n] Y
    Reload privilege tables now? [Y/n] Y

    这样就设置好了密码,然后尝试登陆下:

    mysql -uroot -p

    自此,我们的linux下安装php+mysql+nginx算是完成了。

    四、 安装mysql (番外篇,如果你依然执着mysql可以按照以下操作)

    注意:已经安装了上面了的mariadb的,可以不安装这个了,这两个数据库的用法差不多的。

    首先Centos7已经不支持mysql,因为收费了你懂得。centos下yum暂时没有mysql-server直接安装包;MariaDB是MySQL社区开发的分支,也是一个增强型的替代品。CentOS7的yum源中默认好像是没有mysql的。为了解决这个问题,我们要先下载mysql的repo源。

    1、下载mysql的repo源

    wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm

    2、安装mysql-community-release-el7-5.noarch.rpm包

    rpm -ivh mysql-community-release-el7-5.noarch.rpm

    安装这个包后,会获得两个mysql的yum repo源:

    /etc/yum.repos.d/mysql-community.repo,/etc/yum.repos.d/mysql-community-source.repo

    3 、安装mysql

    yum install mysql-server

    根据步骤安装就可以了,不过安装完成后,没有密码,需要重置密码。

    重置密码之前,首先要执行以下操作:

    chown -R root:root /var/lib/mysql

    备注: root是你当前登陆名,如果是其他名字。请自行更换

    然后重启服务器

    service mysqld restart

    接下来登录重置密码:

    mysql -uroot
    mysql >use mysql;
    mysql >update user set password=passworD("123456") where user='root';
    mysql> flush privileges;
    mysql> exit;
  • 相关阅读:
    bzoj 3091 城市旅行(LCT+数学分析)
    bzoj 2843 极地旅行社(LCT)
    Tsinsen A1303. tree(伍一鸣) (LCT+处理标记)
    bzoj 2002 [Hnoi2010]Bounce 弹飞绵羊(LCT)
    bzoj 2049 [Sdoi2008]Cave 洞穴勘测(LCT)
    vijos P1213 80人环游世界(有源汇的上下界费用流)
    bzoj 3698 XWW的难题(有源汇的上下界最大流)
    bzoj 2502 清理雪道(有源汇的上下界最小流)
    sgu 176 Flow construction(有源汇的上下界最小流)
    详解 $_SERVER 函数中QUERY_STRING和REQUEST_URI区别
  • 原文地址:https://www.cnblogs.com/fengqyuan/p/11512333.html
Copyright © 2020-2023  润新知