Php--开发环境搭建

原创
2019/01/17 15:03
阅读数 87

一、wamp环境搭建

  1. 安装apache
  2. 安装mysql
  3. 解压php
  4. 在httpd.conf中配置apache,让apache支持php

          #加载php作为apache的一个模块

          LoadModule php5_module "d:/server/php/php5apache2_4.dll"

     5. 在apache中指定将php文件交给php模块去处理

          #增加php模块需要处理的文件,将以.php为后缀的文件交给php模块去处理

          AddType application/x-httpd-php .php

     6. 配置php,提供mysql扩展,使其能够连接mysql服务器

          ①在php目录下,复制php.ini.development文件重命名为php.ini作为php配置文件

          ②将php的配置文件加载到apache配置文件中

              #增加php配置文件的路径

                PHPIniDir d:/server/php

          ③在php.ini开启mysql扩展

                extension=php_mysql.dll
                extension=php_mysqli.dll

              #设置php扩展路径

                extension_dir = "d:/server/php/ext/"

        7. 虚拟主机配置

            ①在d:/server/apache/conf/extra/下修改httpd-vhosts.conf配置

                # 配置CI项目的虚拟主机

                    <VirtualHost *:80>
                        DocumentRoot "D:/TDOWNLOAD/CI"
                        ServerName lujc.com

                        #设置目录访问权限
                        <Directory "D:/TDOWNLOAD/CI">
                            Options Indexes FollowSymLinks
                            AllowOverride All
                            Order allow,deny
                            Allow from all
                        </Directory>
                </VirtualHost>

            ②在C:\Windows\System32\drivers\etc修改本地hosts配置

                    127.0.0.1       localhost
                    127.0.0.1       lujc.com

            ③在d:/server/apache/conf/下修改httpd.conf配置

                # Virtual hosts
                   Include conf/extra/httpd-vhosts.conf

        8. 重启apache

二、lamp环境搭建

    1)二进制码软件安装

    1.rpm方式

        优点:软件安装非常方便、快速

        缺点:软件的各个组成部分非常固定,不灵活。需要手动解决依赖关系。

        使用场景:软件安装后使用的用户非常少,就采取二进制码方式安装。如:ftp、gcc等

        (1)安装并使用ftp软件(ftp协议 21端口)

            rpm方式安装(vsftpd)软件:

                rpm    -ivh    软件包全名                                //安装软件

                rpm    -q        软件包名(完整)                    //query查看软件是否有安装

                rpm    -e        软件包名(完整)                    //卸载软件

                rpm    -qa                                                    //查看系统里全部rpm方式安装的软件

                rpm    -qa | grep ftpd(部分名字)             //模糊查找指定软件ftpd是否有安装

                软件包名    =    软件包名+软件版本+支持的系统+支持cpu型号+文件后缀

        (2)使用ftp

            ①启动ftp服务:

                service vsftpd start/stop/restart        //控制ftp服务

                ps -A | grep ftp                                 //查看ftp相关服务进程

            ②测试本机与linux与linux的ftp端口21是否通畅

                如果不通畅,解决方法:关闭linux系统防火墙(执行指令 setup)

            ③ftp客户端连接失败

                如果帐号密码输入正确,连接失败,解决方法:关闭SELinux

                vi /etc/selinux/config,把enforcing改为disabled  完成编辑并reboot重启系统,并启动ftp服务

            ④对使用ftp用户的限制

                ftp服务可以在配置文件里边做设置,两个文件如下:

                /etc/vsftpd/user_list        /etc/vsftpd/ftpusers

                限制普通用户只访问自己的家目录    /etc/vsftpd/vsftpd.conf

                

        (3)gcc编译器安装

            软件包依赖

                

    2.yum智能方式

        前提    ①可以上网 ②通过配置把软件放到指定位置

        优点     方便,一键安装,无需考虑软件依赖。

        yum install.php    //安装

            yum  -y  install  包名

            yum  -y  remove  包名        //卸载

            yum  -y  update  包名        //升级(有网)

            yum  list   查询所有可以安装的包  

        如果没有网络,yum管理工具可以将多媒体软件库作为yum源(池),继续完成软件管理。yum默认将/etc/yum.repo.d/CentOS-base.repo文件作为第一yum源配置文件,此文件描述了网络站点的下载地址,如果此文件存在,则继续上网安装,断网时会安装失败。需要将yum源切换为光盘的多媒体文件中去。

        将光盘作为yum源

            修改yum源配置文件            //剪切或改名皆可,只要在原位置无同名配置文件即可。

                mv  /etc/yum.repo.d/CentOS-Base.repo   /root/ 

        挂载使用光盘

            mount /dev/cdrom  /mnt/cdrom

        修改Media配置文件,指定yum源为挂载点

            vi   /etc/yum.repos.d/CentOS-Media.repo

            修改开始

                baseurl=file:///mnt/cdrom/         指定yum源位置

                enabled=1                   yum源文件生效

                gpgcheck=1                 rpm验证不生效

            修改结束

        测试安装

        yum  -y  install  gcc

        安装软件包8个自动解除依赖关系。

    2)源码编译方式安装软件

        优点:软件内部各个组成部分可以灵活做配置(例如php里边有gd/xml/jpeg/png等各个部分组成,都可以灵活选取)

        缺点:安装稍麻烦

        使用场景:软件安装完毕使用者非常多、非常巨大,就采取源码编译方式安装。如php、apache、mysql等。

         卸载之前的软件(因为在linux中,默认安装了apache、mysql、php软件,它们都是以rpm包格式安装,所以我们需要先将这些软件删除才可以继续安装我们现在的源代码包。)

        rpm -e httpd --no'de'p's

    1.zlib软件安装

        zlib可以对许多其他软件的编译代码起着优化、压缩的作用

        解压压缩包:

        .tar.gz            tar    zxvf    压缩包.tar.gz

        .tar.bz2          tar     jxvf    压缩包.tar.bz2

        ./configure  //在解压软件目录内部执行    make       make install

    2.安装apache

        configure配置指令之后直接执行:make && make install

        启动apache: /usr/local/http2/bin/下    执行.apachectl  start/stop/restart

    3.安装php

        (1)安装libxml2

            tar zxvf libxml2-2.7.2.tar.gz

            cd libxml2.2.7.2

            ./configure --prefix=/usr/local/libxml2 \

                               --without-zlib

            make && make install

        (2)安装jpeg8

            tar zxvf jpegsrc.v8b.tar.gz

            cd jpeg-8b

            ./configure --prefix=/usr/local/jpeg \

                               --enable-shared --enable-static

            --enable-shared             //把jpeg需要的函数库程序都编译到该软件里边

                                                    优点:函数调用速度快        缺点:软件本身比较大

            --enable-static                //静态方式函数处理,需要什么函数马上include出来

                                                    优点:软件本身比较小        缺点:函数调用速度慢

            make && make install

        (3)安装libpng

                tar zxvf libpng-1.4.3.tar.gz

                cd libpng-1.4.3

                ./configure

                make && make install

        (4)安装freetype(字体库)

        (5)安装GD库

        (6)安装php

            tar jxvf php-5.3.6.tar.bz2

            cd php-5.3.6

            ./configure --prefix=/usr/local/php \

            --with-apxs2=/usr/local/http2/bin/apxs \

                            apache的支持,其作用:

                            ①给apache生成php模块

                            ②修改/usr/local/http2/conf/httpd.conf的配置文件,使其引入php模块

            --with-mysql=mysqlnd \

            --with-pdo-mysql=mysqlnd \

            --with-mysqli=mysqlnd \

                            mysql没有先于php之前安装,还要对php形成支持,就设置mysqlnd,mysqlnd表示会激活php本身的mysql驱动并使用

            --with-freetype-dir=/usr/local/freetype \

            --with-gd=/usr/local/gd \

            --with-zlib --with-libxml-dir=/usr/local/libxml2 \

            --with-jpeg-dir=/usr/local/jpeg \

            --with-png-dir \

            --enable-mbstring=all \

            --enable-mbregex \            

                            正则表达式对php的支持

            --enable-shared \

            make && make install

            cp php.ini-development    /usr/local/php/lib/php.ini

                            php安装完成会使得httpd.conf把对应的php模块引入,配置apache使其支持php

                            vi /usr/local/http2/conf/httpd.conf

                            ①在httpd.conf中增加AddType application/x-httpd-php.php

                            ②在<IfModule dir_module>

                                        DirectoryIndex index.html

                                  </IfModule>

                                在index.html前面添加index.php

                             ③建立php测试网页

                                vi /usr/local/apache2/htdocs/index.php

                                <?php

                                    phpinfo();

                                ?>

            修改php配置文件/usr/local/php/lib/php.ini设置date.timezone = PRC

            /usr/local/http2/bin/apachectl restart        //重启apache

        4.安装mysql

            (1)安装cmake

                rpm -ivh cmake……rpm

            (2)安装mysql

                安装依赖软件:ncurses-devel

                依赖解决好后需要删除CMakeCache.txt文件

                tar zxvf mysql-5.5.17.tar.gz

                cd mysql-5.5.17

                cmake \

                -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \    //准备安装到哪

                -DCMAKE_DATADIR=/usr/local/mysql/data \       //数据存储目录

                -DDEFAULT_CHARSET=utf8 \                            //默认的字符集

                -DDEFAULT_COLLATION=utf8_general_ci \         //校队字符集

                make && make install

                cp support-files/my-medium.cnf    /etc/my.cnf        //给mysql复制一个配置文件

            (3)配置并初始化mysql

                useradd mysql

                chmod + x /usr/local/mysql

       (数据库用户不小心删光)

         删除data目录同时删除旧的mysql服务 ps -A | grep mysql    killall mysqld或kill -9 mysql进程号码

                chown -R mysql.mysql    /usr/local/mysql

                初始化mysql数据库

                /usr/local/mysql/scripts/mysql_install_db \

                --user=mysql \

                --basedir=/usr/local/mysql \

                --datadir=/usr/local/mysql/data &

                把mysql安装文件除了data的拥有者都变为root,避免数据库恢复为出厂设置

                chown -R root /usr/local/mysql

                chown -R mysql/usr/local/mysql/data

                后台运行mysql服务

                /usr/local/mysql/bin/mysqld_safe --user=mysql &

                ps -A | grep mysql            //查看mysql是否有启动

                测试数据库

                /usr/local/mysql/bin/mysql -u root

                show databases;

                接上步,可省略,修改数据库密码

                update user set Password=password(123456);

                select Host,User,Password from user;

                flush privileges;        //刷新权限,使修改后的密码生效

            (4)mysql忘记root密码

                vim /etc/my.cnf     在[mysqld]的段中加上一句:skip-grant-tables

                netstat -lnp | grep mysql 找到对应pid

                kill 3699

                /usr/local/mysql/bin/mysqld_safe --user=mysql &

                 /usr/local/mysql/bin/mysql

                USE mysql ; 

                UPDATE user SET Password = password ( 'root' ) WHERE User = 'root' ; 

                flush privileges ; 

                exit;

                vim /etc/my.cnf     在[mysqld]的:skip-grant-tables前面加上#注释保存退出

                netstat -lnp | grep mysql 找到对应pid

                kill 3833

                /usr/local/mysql/bin/mysqld_safe --user=mysql &

        5.注意点

            (1)配置虚拟主机细节

                <VirtualHost *:80>

                    ServiceName web.ecshop2.com

                    DocumentRoot "/var/www/html/shop/"

                    <Directory "/var/www/html/shop/">

                        Options Indexes

                        Order Deny,Allow

                        Allow from all

                    </Directory>

                </VirtualHost>

            (2)开机自动启动服务

                配置文件路径: # vi /etc/rc.d/rc.local,在文件中增加启动相关服务的命令如下:

                /usr/local/http2/bin/apachectl start

                /usr/local/mysql/bin/mysqld_safe --user=mysql &

                service vsftpd start

            (3开机默认命令模式启动

                vi /etc/inittab

                修改id:5->id:3  //命令模式开机

                reboot        //重启系统

                poweroff    //关闭系统

三、关于centos7 yum安装nginx、php、mysql(lnmp环境搭建)

    与centos6不同,默认情况Centos7中无Nginx的源

    1、打开nginx网站:http://nginx.org/packages/centos/7/noarch/RPMS/

         复制链接http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm

    2、登录服务器,进入 /usr/local/src,通过wget http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm进行下载rpm包

    3、执行命令添加源

        rpm -ivh nginx-release-centos-7-0.el7.ngx.noarch.rpm

    4、查看是否已经添加源成功

        yum search nginx

    5、yum安装nginx

        yum -y install nginx

    6、nginx相关常用命令

        #重新加载配置|重启|停止|退出     nginx -s reload|reopen|stop|quit

        查看:service nginx status/systemctl status nginx

        启动:service nginx start/systemctl start nginx/systemctl enable nginx(nginx加入开机启动)

        重启:nginx -c /etc/nginx/nginx.conf(指定文件重启)/nginx -s reload(重新加载配置,平滑重启,有时可能不生效)

        检查语法:nginx -t

    7、启动nginx,可以在服务器输入如下命令测试

        curl -i localhost

    8、打开网页

    访问成功网页如有图所示:

     注意:阿里云有一个安全组规则,其中限制了外部网络设备对阿里云实例服务器的访问权限。默认打开了 SSH 连接的 22 端口,所以你可以通过远程工具连接到阿里云服务器当中。但是web 服务的 80 端口和 443 端口都是关闭,拒绝访问的,所以即便你安装并启动了Nginx服务,同时关闭了服务器防火墙,依然无法从浏览器访问你的 Nginx 服务。

    9、如何将PHP7.3,7.2, 7.1 安装在centos/RHEL 7.6 上?

        安装EPEL:sudo yum install epel-release

        安装remi:sudo rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

        安装php7

            ## 安装PHP 7.3 
            yum --enablerepo=remi-php73 install php

            ## 安装 PHP 7.2 
            yum --enablerepo=remi-php72 install php

            ## 安装 PHP 7.1 
            yum --enablerepo=remi-php71 install php

            检测是否正确运行:php -v

            

        完全卸载php7:yum remove php-common

        安装yum源管理工具:yum install yum-utils

        安装PHP模块(扩展):

            ### For PHP 7.3

                yum --enablerepo=remi-php73 install php-xml php-soap php-xmlrpc php-mbstring php-json php-gd php-mcrypt php-fpm php-pdo php-mysql

            ### For PHP 7.2
                yum --enablerepo=remi-php72 install php-xml php-soap php-xmlrpc php-mbstring php-json php-gd php-mcrypt php-fpm php-pdo php-mysql

            ### For PHP 7.1
                yum --enablerepo=remi-php71 install php-xml php-soap php-xmlrpc php-mbstring php-json php-gd php-mcrypt php-fpm php-pdo php-mysql

            列出remi仓库下所有PHP7.3可用模块指令:

                yum --enablerepo=remi-php73 search php | grep php73

        启动php-fpm:systemctl start php-fpm.service

        开机启动php-fpm:systemctl enable php-fpm.service

    10、安装mysql

        ①查看系统中是否已安装 MySQL 服务,以下提供两种方式:

            rpm -qa | grep mysql  或者 yum list installed | grep mysql

        ②如果已安装则删除 MySQL 及其依赖的包:

            yum -y remove mysql-libs.x86_64

        ③下载MySql安装包

            [root@centos7 ~]# rpm -ivh http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm

            或者 [root@localhost ~]# rpm -ivh http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm

        ④安装MySQL

            [root@centos7 ~]# yum install -y mysql-server

            或者 [root@localhost ~]# yum install mysql-community-server

        ⑤设置开机启动MySQL

            [root@centos7 ~]# systemctl enable mysqld.service

        ⑥检查是否已经安装了开机自动启动

    [root@centos7 ~]# systemctl list-unit-files | grep mysqld
    mysqld.service                                enabled 
    mysqld@.service                               disabled

            上述情况内容说明已经完成自动启动安装

        ⑦设置开启服务

            [root@centos7 ~]# systemctl start mysqld.service

        ⑧查看MySQL默认密码

    [root@centos7 ~]# grep 'temporary password' /var/log/mysqld.log
    2018-10-23T07:26:03.122784Z 1 [Note] A temporary password is generated for root@localhost: SO#%2<oGFjos
    这里的默认密码 SO#%2<oGFjos 是MySQL安装的时候随机生成的,

        ⑨登陆MySQL,输入用户名和默认密码

    [root@centos7 ~]# mysql -uroot -p
    Enter password:

        ⑩修改当前用户密码

    mysql> set password = password('Root_123!');

        开启远程登录,授权root远程登录

    mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'Root_123!' WITH GRANT OPTION;
    Query OK, 0 rows affected, 1 warning (0.00 sec)

        命令立即执行生效

    mysql> flush privileges;
    Query OK, 0 rows affected (0.00 sec)

其他一些功能

        1、检查并且显示Apache相关安装包

    [root@centos7 ~]# rpm -qa | grep mysql
    mysql57-community-release-el7-8.noarch
    mysql-community-client-5.7.24-1.el7.x86_64
    mysql-community-libs-5.7.24-1.el7.x86_64
    mysql-community-common-5.7.24-1.el7.x86_64
    mysql-community-libs-compat-5.7.24-1.el7.x86_64
    mysql-community-server-5.7.24-1.el7.x86_64

        2、删除MySQL

            [root@localhost ~]# yum remove -y mysql mysql mysql-server mysql-libs compat-mysql51

            或者[root@localhost ~]# rpm -e mysql-community-libs-5.7.20-1.el7.x86_64 --nodeps

            或者[root@localhost ~]# yum -y remove mysql-community-libs-5.7.20-1.el7.x86_64

        3、查看MySQL相关文件

    [root@centos7 ~]# find / -name mysql
    /var/spool/mail/mysql
    /var/lib/mysql
    /var/lib/mysql/mysql
    /etc/selinux/targeted/active/modules/100/mysql
    /etc/logrotate.d/mysql
    /home/mysql
    /home/ftp/sh-1.5.5/mysql
    /home/ftp/sh-1.5.5/php-5.5.7/ext/mysql
    /home/ftp/sh-1.5.5/php-5.5.7/travis/ext/mysql
    /usr/lib64/mysql
    /usr/share/mysql
    /usr/bin/mysql

        4、重启MySQL服务

    [root@centos7 ~]# service mysqld restart

        5、查看MySQL版本

    [root@centos7 ~]# yum repolist all | grep mysql
    mysql-connectors-community/x86_64 MySQL Connectors Community     enabled:     74
    mysql-connectors-community-source MySQL Connectors Community - S disabled
    mysql-tools-community/x86_64      MySQL Tools Community          enabled:     74
    mysql-tools-community-source      MySQL Tools Community - Source disabled
    mysql-tools-preview/x86_64        MySQL Tools Preview            disabled
    mysql-tools-preview-source        MySQL Tools Preview - Source   disabled
    mysql55-community/x86_64          MySQL 5.5 Community Server     disabled
    mysql55-community-source          MySQL 5.5 Community Server - S disabled
    mysql56-community/x86_64          MySQL 5.6 Community Server     disabled
    mysql56-community-source          MySQL 5.6 Community Server - S disabled
    mysql57-community/x86_64          MySQL 5.7 Community Server     enabled:    307
    mysql57-community-source          MySQL 5.7 Community Server - S disabled

        6、查看当前的启动的 MySQL 版本

    [root@centos7 ~]# yum repolist enabled | grep mysql
    mysql-connectors-community/x86_64 MySQL Connectors Community                  74
    mysql-tools-community/x86_64      MySQL Tools Community                       74
    mysql57-community/x86_64          MySQL 5.7 Community Server                 307

        7、通过Yum来安装MySQL,会自动处理MySQL与其他组件的依赖关系

    [root@localhost ~]# yum install mysql-community-server

        8、查看MySQL安装目录

    [root@centos7 ~]# whereis mysql
    mysql: /usr/bin/mysql /usr/lib64/mysql /usr/share/mysql /usr/share/man/man1/mysql.1.gz

        9、启动MySQL服务

    [root@centos7 ~]# systemctl start mysqld

        10、查看MySQL服务状态

    [root@centos7 ~]# systemctl status mysqld
    ● mysqld.service - MySQL Server
       Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
       Active: active (running) since Tue 2018-10-23 17:12:39 CST; 6min ago
         Docs: man:mysqld(8)
           http://dev.mysql.com/doc/refman/en/using-systemd.html
      Process: 19048 ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid $MYSQLD_OPTS (code=exited, status=0/SUCCESS)
      Process: 19030 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)
     Main PID: 19051 (mysqld)
       CGroup: /system.slice/mysqld.service
           └─19051 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid

    Oct 23 17:12:38 centos7 systemd[1]: Starting MySQL Server...
    Oct 23 17:12:39 centos7 systemd[1]: Started MySQL Server.

        11、关闭MySQL服务

            [root@localhost ~]# systemctl stop mysqld

        12、测试MySQL是否安装成功

            [root@localhost ~]# mysql

        13、查看MySQL默认密码

    [root@centos7 ~]# grep 'temporary password' /var/log/mysqld.log
    2018-10-23T07:26:03.122784Z 1 [Note] A temporary password is generated for root@localhost: SO#%2<oGFjos

        14、查看所有数据库

            mysql>show databases;

        15、退出登录数据库

            mysql>exit;

        16、查看所有数据库用户

            mysql>SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM mysql.user;

四、lujc@mac中apache环境配置

    1、修改配置文件

        sudo vim /etc/apache2/httpd.conf

        vim /usr/local/etc/httpd/httpd.conf
        

        AddType application/x-gzip .gz .tgz

        AddType application/x-httpd-php .php //添加支持对php脚本解析

1

2

3

<IfModule dir_module>

DirectoryIndex index.php index.html   #增加对php的索引

</IfModule>

    1、重启apache

        sudo /usr/sbin/apachectl restart

        apachectl restart 

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部