• Mac OSX 下配置 LNMP开发环境


    不久前负责了一个项目需要配置PHP7的开发环境,因为之前所有的项目用的是PHP5的,所以研究了这些东西,但是很遗憾,电脑出了问题,不得已重装了系统,然后你懂得。。。什么都没有了,要重新来过。。
    虽然本人是搞前端的,但是因为时常需要接触配置开发环境并部署本地网站,所以这次干脆从头到尾亲自动手,好好学习一下运维这方面的相关知识了。

    Mac OSX 下 使用 homebrew 安装 PHP,nginx, mysql,composer,NodeJS等,搭建LNMP开发环境。实战经验分享:

    1 版本问题

    • 此次因为重装并升级了系统,所以索性搭建时安装的NMP也用了对应官网上的默认或者最新版本。
    • 如果有版本要求的可以安装对应的版本
    • PHP建议安装5.6的,因为PHP56的还是目前比较稳定的版本,很多公司都在用。
    • 如果有些命令行失灵或者报错,那么很有可能是版本过于新/旧或者环境的问题,NMP的内容或命令行也会更新或者废弃。

    2 linux 命令行
    这里放置一些下面安装时可能会用到的linux 命令行,供不太了解的人参考,如有错误,欢迎指正。

    • 删除文件
    $ rm -rf filename
    
    • 查看某个文件目录下的隐藏文件
    $ ls -a  
    
    • 编辑某个文件的内容
    $ vim 文件名  
    // 按下a键进入编辑模式,按下esc键退出编辑模式,按下“:wq”表示保存并推出,按下“:q”表示不保存,直接退出。
    
    • 在某个文件中搜索关键词
    $ :/要搜索的关键词,按enter键开始搜  
    

    iTerm2 && Oh My Zsh

    这里附上一款替代终端的软件和口碑比较好的终端主题

    下载地址 -> iTerm2
    安装之后:
    执行一下命令行安装[oh-my-zsh]主题(https://github.com/robbyrussell/oh-my-zsh):

    $ sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
    

    Homebrew

    Homebrew是Mac OSX下流行的包管理软件,这里推荐通过Homebrew来安装各种软件包。

    进入Homebrew官网之后,查看如何安装:

    $ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
    

    PHP

    添加php软件仓库

    $ brew tap homebrew/homebrew-php
    

    踩的坑
    brew tap homebrew/dupes
    brew tap homebrew/versions
    尝试在自己本地去执行这两个命令的时候,给出了警告:

    Warning: homebrew/dupes was deprecated. This tap is now empty as all its formulae were migrated.
    

    查了下发现是 homebrew/dupes,homebrew/versions好像已经被迁移到homebrew/core或者是被删除,可以忽略。

    安装PHP(这里可以指定版本,比如可以把71换成56)

    $ brew install php71
    

    安装后 php.ini 以及fpm的配置文件均在/usr/local/etc/php/7.1/目录下。

    设置环境变量
    查看环境PATH:echo $PATH,确认/usr/local/bin, /usr/local/sbin是否存在且排在/usr/sbin之前。如不满足,则需根据你系统所使用的shell,将环境变量添加到~/.bashrc, /.zshrc或/.profile中去:

     PATH="/usr/local/bin:/usr/local/sbin:$PATH"
    

    启动PHP-FPM服务

    $ brew services start php71
    

    也可通过brew services restart|stop php71命令来重启、停止服务。

    配置PHP-FPM随机启动

    $ mkdir -p ~/Library/LaunchAgents
    $ cp /usr/local/opt/php71/homebrew.mxcl.php71.plist ~/Library/LaunchAgents/
    

    验证PHP-FPM服务是否启动成功

    $ ps aux | grep php-fpm
    

    如存在相关php-fpm进程,则表明启动成功.

    nginx

    安装

    $ brew install nginx
    

    安装后,可在/usr/local/etc/nginx目录下,找到Nginx系列配置文件。
    建立需要存放项目的文件夹,举例如下:

    $ sudo mkdir -p /var/www   //创建名字为var的文件夹,该文件夹下创建www文件夹,这里多用来存放项目文件夹
    $ sudo mkdir -p /var/log/nginx      // 在var文件夹下创建log文件夹,log文件夹下在创建nginx文件夹,这里用来存放nginx运行日志
    $ mkdir /usr/local/etc/nginx/sites-enabled     //在/usr/local/etc/nginx/下创建sites-enabled文件夹,用来存放对应的项目的nginx的配置。
    

    替换/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
    

    验证Nginx服务启动是否成功

    $ bash -c `echo "Hello, World!" >> /var/www/index.html`
    $ bash -c `echo "<?php 
    phpinfo();" >> /var/www/phpinfo.php`
    

    在浏览器中打开http://localhost,出现Hello, World!表示Nginx启动成功。 在浏览器中打开http://localhost/phpinfo.php,出现PHP配置相关信息,表示PHP配置成功。

    如果不成功,可通过以下命令查看错误日志排查原因:

    $ tail -100f /var/log/nginx/…error.log
    

    配置Nginx服务随机启动

    cp /usr/local/opt/nginx/homebrew.mxcl.nginx.plist ~/Library/LaunchAgents/
    

    MySQL

    安装

    $ brew install mysql
    

    启动

    $ brew services start mysql
    

    配置随机启动

    $ cp /usr/local/opt/mysql/homebrew.mxcl.mysql.plist ~/Library/LaunchAgents/
    

    phpMyAdmin

    phpMyAdmin是一款方便易用的Mysql数据库管理软件。可以在 官网 下载最新版的phpMyAdmin。

    将下载的安装包解压到 /var/www/phpmyadmin 目录下,创建配置文件config.inc.php, 内容如下:

    <?php
    
    $i = 0;
    
    /* Server: localhost [1] */
    $i++;
    $cfg['Servers'][$i]['verbose'] = 'localhost';
    $cfg['Servers'][$i]['host'] = 'localhost';
    $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。

    composer

    Composer可以对php项目进行依赖管理,具体用法和内容可以查看官网.
    踩的坑
    在安装composer时,需要安装一个PHP71的一个扩展包phalcon
    搜索具体的名字,如下:

    $ brew search phalcon
    

    安装:

    $ brew install homebrew/php/php71-phalcon
    

    全局安装
    可以执行这些命令让 composer 在你的系统中进行全局调用:

    $ curl -sS https://getcomposer.org/installer | php
    $ php composer.phar
    $ mv composer.phar /usr/local/bin/composer
    

    验证是否安装

    $ composer -v
    

    局部安装
    可以通过 --install-dir 选项指定 Composer 的安装目录(它可以是一个绝对或相对路径):

    curl -sS https://getcomposer.org/installer | php -- --install-dir=bin
    

    nodejs

    安装nodejs

    brew install nodejs
    brew postinstall node
    

    配置NPM源为国内源,以大幅提升NPM的安装速度:

    npm config set registry https://registry.npm.taobao.org
    

    OK,完毕

  • 相关阅读:
    windows服务创建与管理
    html前端技术:??
    C#整数三种强制类型转换int、Convert.ToInt32()、int.Parse()的区别
    convert转化成特定日期格式
    关于android性能,内存优化(转载)
    不错的Android博客
    十步优化SQL Server中的数据访问(转载)
    数据库SQL优化大总结之 百万级数据库优化方案(转载)
    SQL Server数据库性能优化之SQL语句篇(转载)
    50种方法优化SQL Server数据库查询(转载)
  • 原文地址:https://www.cnblogs.com/clearsky/p/7045905.html
Copyright © 2020-2023  润新知