mac 아래 수 동 설치 및 설정 tengine 2.2 + php 7

17295 단어
Mac 에 LNMP 환경 설치
  • 머리말
  • 설명
  • brew 소스 교체
  • 원본 다운로드
  • 문제 집계
  • tengine
  • 설치
  • 설정
  • https
  • 인증서 설치
  • nginx 설정
  • mysql
  • brew 방식
  • PHP7
  • openssl 설치
  • 컴 파일 확장
  • php 컴 파일
  • 설치 확장
  • 스 크 립 트 시작
  • 부록 1 nginx conf
  • 부록 2 php - fpm start. sh
  • 머리말
    최근 에 로 컬 프로그램 을 쓰 려 고 합 니 다. 아니면 항상 commt 코드 를 쓰 려 고 합 니 다. 효율 이 낮 습 니 다. 기본 설치 가 싫 으 면 직접 수 동 으로 설치 하 세 요.
    설명 하 다.
  • nginx 는 Tengine 2.2 로 설치 되 어 있 으 며 해당 버 전 은 1.8
  • 입 니 다.
  • macx 10. x 오류 보고, 인내심 을 가지 고 설치 하 세 요
  • 가능 한 한 소스 코드 컴 파일 로 확장 라 이브 러 리 설치
  • zlib, pcre, openssl 은 따로 configure 할 필요 가 없습니다. nginx 참조 과정 은 자체 적 으로 컴 파일 하여 해당 라 이브 러 리 파일 을 가 져 옵 니 다
  • 본 고의 경 로 는 기본적으로 / data / server /
  • 컴 파일 해 야 obbs / Makefile 파일 이 있 습 니 다
  • brew 소스 교체
    #vim ~/.bashrc //      
    #export HOMEBREW_BOTTLE_DOMAIN=http://7xkcej.dl1.z0.glb.clouddn.com
    

    원본 코드 다운로드
  • zip 다운로드 주소
  • pcre 다운로드 주소
  • tengine 2.2 다운로드 주소
  • openssl 다운로드 주소
  • 문제 집
  • macOS 10. x nginx 제한 처리
  • 오류 메시지 nginx error: 'OSAtomic Add 64' is deprecated: first deprecated in macOS 10.12. 해결 방법: vim objects / Makefile, 다음 줄: CFLAGS = - ipe - O - Woll - Waextra - Whanter - arith - wno - unused - parameter - Warr - g - 이 줄 제거 - Warror
  • openssl 을 컴 파일 64 비트 로 변경
  • vim obbs / Makefile, 다음 줄 로 검색: 3. macx 10 + ldconfig 명령 이 없 기 때문에 컴 파일 파일 파일 을 변경 하고 경 로 를 스스로 추가 해 야 합 니 다.
    tengine
    설치 하 다.
    #cd /data/install/tengine-2.2.0/
    #./configure --prefix=/data/server/nginx --sbin-path=/data/server/nginx/sbin/nginx --conf-path=/data/server/nginx/conf/nginx.conf --error-log-path=/data/server/nginx/log/error.log --http-log-path=/data/server/nginx/log/access.log --pid-path=/data/server/nginx/nginx.pid --lock-path=/data/server/nginx/lock/nginx.lock --with-http_flv_module --with-http_stub_status_module --with-http_gzip_static_module --with-http_realip_module --with-http_sub_module --with-http_ssl_module --with-http_addition_module --with-http_random_index_module --with-http_dav_module --with-openssl=/data/server/src/openssl-1.0.2l --with-pcre=/data/server/src/pcre-8.38 --with-zlib=/data/server/src/zlib-1.2.11
    #vim objs/Makefile
    #   ,  -Werror
    #  openssl, ./config --prefix=/data/server/src/openssl-1.0.2l/.openssl no-shared
       :./Configure darwin64-x86_64-cc  --prefix=/data/server/src/openssl-1.0.2l/.openssl no-shared
    #make test
    #make
    #make install
    #/data/server/nginx/sbin/nginx -m
    

    배치 하 다.
    https
    인증서 설치
    #mkdir /data/server/nginx/ssl
    #cd /data/server/nginx/ssl
    /**               **/
    #/usr/local/openssl/bin/openssl genrsa -des3 -out server.key 1024
    #/usr/local/openssl/bin/openssl req -new -key server.key -out server.csr
    #/usr/local/openssl/bin/openssl rsa -in server.key -out server_nopwd.key
    #/usr/local/openssl/bin/openssl x509 -req -days 365 -in server.csr -signkey server_nopwd.key -out server.crt
    

    설정 nginx
    /**  80        **/
    #vim vhost_default.conf
    #vim vhost_default.conf //    1
    #vim vhost_localhost_ssl.conf //    1  
    #nginx -t && nginx -s reload
    

    mysql
    brew 방식
    다른 방식 은 그의 어머니 가 너무 많아 서 데이터 디 렉 터 리 는 반드시 자신의 비 시스템 환경 에 두 어야 한다. 그렇지 않 으 면 잃 어 버 리 면 번 거 로 울 것 이다.
    #brew install mysql
    #unset TMPDIR
    #mysql_install_db --verbose --user='_mysql' --basedir="$(brew --prefix mysql)" --datadir=/data/server/mysql/data/
    #mysql.server start
    
    

    PHP7
    openssl 설치
    #brew upgrade openssl
    #ls -l /usr/local/openssl/  //        
    

    컴 파일 확장
    libcurl libiconv zlib
    #wget https://curl.haxx.se/download/curl-7.54.1.tar.gz
    #wget http://zlib.net/zlib-1.2.11.tar.gz
    #wget https://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.8.tar.gz
    #tar zxvf curl-7.54.1.tar.gz
    # tar zxvf zlib-1.2.11.tar.gz
    # tar zxvf libiconv-1.8.tar.gz
    # configure --prefix=/data/server/libs/*
    # make && make install 
    //              
    
    

    컴 파일 php
    #./configure --prefix=/data/server/php/ --with-config-file-path=/data/server/php/etc/ --enable-mysqlnd --with-mysqli=/usr/local/Cellar/mysql/5.7.18_1/bin/mysql_config --with-pdo-mysql=/usr/local/Cellar/mysql/5.7.18_1/  --with-freetype-dir --with-jpeg-dir --with-png-dir --enable-xml --disable-rpath --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --enable-mbregex --enable-fpm --enable-mbstring --with-mcrypt --with-gd --enable-gd-native-ttf --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --without-pear --enable-calendar --enable-opcache --with-openssl=/usr/local/openssl/ --with-zlib=/usr/local/opt/zlib/ --with-curl=/usr/local/opt/curl/ --with-iconv=/usr/local/opt/libiconv/
    #vim Makefile
    #make && make install
    #data/server/php/bin/php -v //        
    

    아래 가 매우 중요 합 니 다. 그렇지 않 으 면 macx 10 + 가 설치 되 지 않 습 니 다. ld 명령 이 없 기 때문에 configure 후 Makefile 파일 을 편집 해 야 합 니 다. 완전 하지 않 으 면 오류 에 따라 교체 할 수 있 지만 방식 은 같 습 니 다.
    #vim Makefile
    #  112   EXTRA_LIBS,     
    EXTRA_LIBS = -lz -lresolv -lmcrypt -lltdl -lpng -lz -ljpeg -lcurl -lz -lcrypto -lm -lxml2 -lz -licucore -lm -lcurl -lldap -lz -lxml2 -lz -licucore -lm -lfreetype -lmysqlclient -lmysqlclient -lxml2 -lz -licucore -lm -lxml2 -lz -licucore -lm -lxml2 -lz -licucore -lm -lxml2 -lz -licucore -lm -lxml2 -lz -licucore -lm -lxml2 -lz -licucore -lm /usr/local/openssl/lib/libssl.dylib /usr/local/openssl/lib/libcrypto.dylib /usr/local/Cellar/libiconv/1.15/lib/libiconv.dylib
    
    

    예 를 들 어 lssl 이 들 어 있 으 면 모든 것 을 삭제 하고 / usr / local / openssl / lib / libssl. dylib 로 대체 합 니 다.
    설치 확장
    /**imagick**/
    #wget http://pecl.php.net/get/imagick-3.4.3.tgz
    #tar zxvf imagick-3.4.3.tgz
    #/data/server/php/bin/phpize 
    #brew install imagemagick
    #./configure --with-php-config=/data/server/php/bin/php-config  --with-imagick=/usr/local/opt/imagemagick/
    #make && make install
    
    /**memcached**/
    #brew install libmemcached
    #cd memcached-1.5.0
    #/data/server/php/bin/phpize
    #./configure --with-zlib-dir=/usr/local/Cellar/zlib/1.2.11/ --with-php-config=/data/server/php/bin/php-config --with-libmemcached-dir=/usr/local/opt/libmemcached/
    #make && make install
    
    /**mongodb**/
    #git clone https://github.com/mongodb/mongo-php-driver.git
    #cd /mongo-php-driver/
    #git submodule update --init 
    #/data/server/php/bin/phpize
    #./configure --with-php-config=/data/server/php/bin/php-config --with-openssl-dir=/usr/local/opt/openssl/
    #make & make install
    
    

    시작 스 크 립 트
    #vim /data/server/php/etc/php-fpm.conf
    /** global      pid**/
    #pid = run/php-fpm.pid
    /**                **/
    #vim /data/server/php/start.sh
    

    부록 1 nginx conf
    /**default.conf**/
    server {
        listen 80 default_server;
        #listen [::]:80 default_server;
        server_name _;
        # Discourage deep links by using a permanent redirect to home page of HTTPS site
        return 301 https://$host;
        # Alternatively, redirect all HTTP links to the matching HTTPS page
        # return 301 https://$host$request_uri;
    }
    /**local demo conf**/
    server {
        listen 443 ssl;
        server_name localhost 127.0.0.1;
        //HSTL    ,          
        add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;	    
        ssl_certificate  /data/server/nginx/ssl/server.crt;
        ssl_certificate_key  /data/server/nginx/ssl/server_nopwd.key;
        
        index index.html index.htm index.php;
        root /data/www/localhost/web/;
        location / {
            if (-d $request_filename) {
                rewrite ^/(.*)([^/])$ http://$host/$1$2/ permanent;
            }
            if (!-e $request_filename){
                rewrite ^/(.*)$ /index.php?s=/$1 last;
            }
        }
        location ~ \.php$ {
            index index.php;
            fastcgi_pass   fastcgi_backend;
            fastcgi_param  SCRIPT_FILENAME;
            $document_root$fastcgi_script_name;
            include fastcgi_params;
            include fastcgi.conf;
        }
    }
    

    부록 2 php - fpm start. sh
    /**start.sh**/
    
    DESC="php-fpm daemon"
    NAME=php-fpm
    # php-fpm  
    DAEMON=/data/server/php/sbin/$NAME
    #       
    CONFIGFILE=/data/server/php/etc/$NAME.conf
    # PID    ( php-fpm.conf  )
    PIDFILE=/data/server/php/var/run/$NAME.pid
    SCRIPTNAME=/data/server/php/start.sh
     
    # Gracefully exit if the package has been removed.
    test -x $DAEMON || exit 0
     
    rh_start() {
      $DAEMON -y $CONFIGFILE || echo -n " already running"
    }
     
    rh_stop() {
      kill -QUIT `cat $PIDFILE` || echo -n " not running"
    }
     
    rh_reload() {
      kill -HUP `cat $PIDFILE` || echo -n " can't reload"
    }
     
    case "$1" in
      start)
            echo "Starting $DESC: $NAME"
            rh_start
            #echo "
    "
    ;; stop) echo "Stopping $DESC: $NAME" rh_stop #echo "
    "
    ;; reload) echo "Reloading $DESC configuration..." rh_reload echo "reloaded." ;; restart) echo "Restarting $DESC: $NAME" rh_stop sleep 1 rh_start #echo "
    "
    ;; *) echo "Usage: $SCRIPTNAME {start|stop|restart|reload}" >&2 exit 3 ;; esac exit 0

    좋은 웹페이지 즐겨찾기