외부 네트워크 (인트라넷에만 프로덕션 환경)없이 비 루트 권한에서의 nginx + mysql을 리눅스 설치 위치를 + PHP

  비 루트 액세스하지만, 여전히 PHP 종속성을 컴파일 루트 권한이 필요합니다.

  먼저 많은 것들을 모두 라이브러리를 필요로하기 때문에 설치 전에해야 ++이 리눅스의 gcc와 g를 확인하고하지 않을 경우, 다음 명령을 실행

  냠 -y GCC GCC-C를 설치 ++

  이미있는 경우, 아직 설치 할 수없는 존재한다고보고됩니다 것이다 일반 리눅스

첫째, nginx를 설치

  1.의 nginx를 설치하기 전에, 우리는 세 가지 종속성을 설치해야 ZLIB, PCRE, OpenSSL을 (이 루트 권한이 필요합니다)

  냠 설치 -y ZLIB PCRE하려면 openssl

  2. 냠, 그것은 외부 다운로드 ZLIB, PCRE, OpenSSL이 종속성은 다음 위를 설치하지 않으면, 냠 성공할 경우,이 단계를 건너 뛰

    2.1 PCRE를 설치합니다 (이 작업을 할 시간은 루트 권한이 필요합니다)

      다운로드 PCRE 종속성  ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre

      // 디렉토리에 업로드 여기 디렉토리 / 홈 / nginx를 / (이다 nginx를 사용)

      CD / 홈 / nginx를 /

      PCRE-8.36.tar.gz -zxvf 타르    

      CD를 PCRE - 8.36

      ./configure를
      만들어
      설치 만든다  

    2.2의 openssl을 설치 (이 작업을 할 시간은 루트 권한이 필요합니다)

      다운로드하려면 openssl 종속성이  http://distfiles.macports.org/openssl/
      디렉토리에 업로드 // 여기에 디렉토리 / 홈 / nginx를 / (이다 nginx를 사용)

      CD / 홈 / nginx를 /
      하려면 openssl-1.0.1e.tar.gz의 -zxvf 타르
      CD하려면 openssl-1.0.1e는
      ./config
      만드는
      메이크업 설치

    2.3 ZLIB를 설치합니다 (이 작업을 할 시간은 루트 권한이 필요합니다)

      다운로드 ZLIB 종속성이  http://www.zlib.net/fossils/
      디렉토리 // 여기에 디렉토리 / 집에 업로드 / nginx를 / (nginx를 사용자입니다)

      CD / 홈 / nginx를 /
      ZLIB-1.2.3.tar.gz의 -zxvf 타르
      CD를 ZLIB-1.2.3
      "- O3 -fPIC"./configure를 CFLAGS의 =
      하게
      설치 만든다

  3. nginx를 설치

  nginx를 다운로드  http://nginx.org/en/download.html을
  디렉토리에 업로드 // 여기에 디렉토리 / 홈 / nginx를 / (이다 nginx를 사용)

  타르 -zxvf Nginx에-1.8.0.tar.gz
  CD Nginx에-1.8.0
  ./configure를 --prefix = / 홈 / Nginx의 / Nginx에-서버 // - 접두사 = 디렉토리 설치
  (가)하게
  설치 (가) 확인

  

  

  // 제 2 동작 단계가있는 경우, 장착의 nginx는 명령의 나머지 부분으로 다음과 같은 구성 명령을 사용할 때
  ./configure를 --prefix = / 가정 / nginx를 / nginx를 서버 --with-PCRE = / 집 /nginx/pcre-8.36 --with-zlib을 = / 홈 / / nginx를 /하려면 openssl-1.0.1e의 nginx / ZLIB-1.2.3 --with-openssl을 = / 집

  // - = PCRE 설치 경로 주소 --with-ZLIB = ZLIB 설치 경로 주소 --with-openssl을 =하려면 openssl 설치 경로 주소 PCRE와

  

  4. Nginx의 성공 여부를
  CD / 홈 / nginx를 / nginx를-서버 / sbin에
  ./nginx -v 설치가 성공했는지 여부를 테스트 버전을 볼 수

 

두 MySQL을 설치

  1. MySQL을 컴파일하기 위해 사용 cmake, cmake 가젯을 설치 설치하기 전에 (이 루트 권한이 필요합니다)

  냠 -y cmake를 설치

  2.이 YUM 수 없다, 그것이 위의 경우 외부 다운로드 cmake는 냠 성공하면, (이 루트 권한을 필요로 할 때 확인)이 단계를 건너 뛰 설치

  cmake 다운로드  https://cmake.org/files/을

  // 디렉토리 현재 디렉토리 / 홈 / mysql을 / (MySQL의 사용자)에 업로드

  CD / 홈 / mysql을 /

  cmake-3.6.1.tar.gz -xvzf 타르

  CD를 cmake-3.6.1

  ./bootstrap

  gmake를

  설치 만든다

  3. MySQL을 설치

  MySQL을 다운로드  http://ftp.ntu.edu.tw/MySQL/Downloads/MySQL-5.6/을

  // 디렉토리 현재 디렉토리 / 홈 / mysql을 / (MySQL의 사용자)에 업로드
  타르 -zxvf MySQL의-5.6.43.tar.gz의
  CD mysql을 - 5.6.43
  cmake -DCMAKE_INSTALL_PREFIX = / 홈 / mysql을 / mysql을 - 서버 // - DCMAKE_INSTALL_PREFIX = 디렉토리는 설치하려는 
  만들기
  만들기 설치를

  구성 mysql을

  CD / 홈 / mysql을 / mysql을 - 서버
  RM -f /etc/my.cnf에 // 시스템을 삭제는 MySQL의 설정 파일과 함께 제공
  ./scripts/mysql_install_db

  받는 ./support-files/mysql.server에서는 /etc/init.d/ 복사
  CP 지원 - 파일 / mysql.server를의 /etc/init.d/mysqld

  환경 변수 수정 리눅스는
  정력을 / etc / 프로필 정력 당신이 VI 명령을 사용할 수 있습니다 작동하지 않습니다 //

  마지막 줄에 커서를 이동 한 다음 내가 마지막 줄 쓰기로 동작되며, 다음은 / etc는 / 프로필 정보 파일의 최종 또한
  수출 PATH = "/ 홈 / mysql을 / mysql을 서버 / 빈 : $ PATH에"
  다음과 누르십시오 현재의 쓰기 작업을 종료하려면 "Esc 키를"라이브 한 다음 "시프트"+를 누르면 ":"저장하기 "WQ"종료를 입력

  소스 / 등은 / 프로파일 //이 한 즉시 구성을 적용하는 것입니다
  mysql을 시작 // 서비스가 시작 mysqld를

  다음은 데이터베이스를 조작 할 수 있습니다

  5. 데이터베이스 암호를 수정 

  루트 -p -u MySQL은
                직접적하기 위해 암호를 입력 히트되는 경우 // 암호가 비어
  MySQL을 사용; // 데이터베이스 선택
  UPDATE 사용자의 비밀 번호를 설정 = PASSWORD ( ' newpasswd') WHERE 사용자 = '루트'/ / 암호 설정하려는 newpasswd 인 비밀번호 변경
  플러시 권한; // 새로 고침, 효과 취할 새로 고침 할 필요가 설정
  종료; // 종료

 

셋째, 설치 PHP

  1. 냠 도구와 애플릿을 구축하는 데 필요한 PHP를 컴파일 과정을 설치 (작은이 컴파일 도구를 설치하고 절차는 루트 권한이 필요)

  냠 -y autoconf를 libtool이-ltdl-(STABLE)의 FreeType에서-(STABLE)의 libxml2를-(STABLE) libjpeg-(STABLE)의의 libpng-(STABLE)하려면 openssl-(STABLE) 컬-(STABLE)의 ncurses-(STABLE) libcap-(STABLE) 센드 메일 PCRE-(STABLE) libxslt를-(STABLE)의 레스 햇의 bzip2-(STABLE) Diffutils의가 NTP의 bzip2 패치 컬의 압축을 풀고 설치 libjpeg의 libpng FreeType에서 libxslt를 libxml2를 libxml2를-(STABLE)

  // 오류를 방지하기 위해, 하나 하나를 설치하는 것이 좋습니다

  libxml2를 첫 번째 단계는 설치 할 수없는 경우 2. 이미 libxml2를 설치 한 경우,이 단계를 건너, 외부 종속성을 다운로드하고 libxml2를 설치하시기 바랍니다 

  설치 libxml2를 (libxml2를 설치 권한을 근절해야한다)

  libxml2를 다운로드  http://xmlsoft.org/sources/을
  디렉토리에 업로드 // 여기에 디렉토리 / 홈 / PHP / (PHP가 다른 사용자를위한 것입니다, 다른 사용자 수 있으며, 사용자가 반드시 PHP는 사용자가 아닌 사용자입니다 사용자가 디렉토리 / home 디렉토리에서 해당 파일이 때 리눅스가 생성되기 때문에 해당 사용자 이름 디렉터리 사용자가 우리가 해당 디렉토리에서 작동하는 데 사용하며, 회사)는 사용자의 설정에 따라 운영

  CD / 홈 / PHP /
  타르 -zxvf libxml2-2.9.1.tar.gz
  CD를 libxml2-2.9.1는
  ./configure--with-python=no
  만드는
  메이크업 설치

  3. PHP를 설치 

  다운로드 PHP  https://museum.php.net/php5/

  // 디렉토리에 업로드 여기 디렉토리 / 홈 / PHP는 / (PHP는 사용자입니다)

  타르 -zxvf PHP-5.3.27.tar.gz의
  CD를 PHP-5.3.27
  ./configure를 --prefix = / 가정 / php에 / PHP5에서 --with-config-file-path = / 가정 / php에 / PHP5 / 등 - 가진 - 투 - MySQL = mysqlnd --with-mysqli = mysqlnd --with PDO - 투 - MySQL = mysqlnd --enable-FPM --enable-소켓 --enable 지퍼 --enable 캘린더 --enable-bc 수학 --enable - 비누 --with-zlib을 --with-의 iconv --with-GD --enable-mbstring --with-XMLRPC --with-컬 --enable-ftp를 --with-Mcrypt 라이브러리 --without-배 --with -freetype-DIR --with-JPEG-DIR --with-PNG-DIR --disable-IPv6를 --disable-디버그 --with-openssl을 // - 접두사 =要安装的目录는
  확인
  시험 // 테스트 할完之后,输入N
  설치하기

  

  가능한 문제가 발생할 수 // 오류 libmcrypt 방법이있는 경우, 다운로드 및 설치 libmcrypt는 설치 프로세스는 다음과 같다 :( 설치 libmcrypt는 권한을 근절해야한다) 

  libmcrypt 다운로드  http://soft.7dot.com/을

  // 디렉토리에 업로드 여기 디렉토리 / 홈 / PHP는 / (PHP는 사용자입니다)

  CD / 홈 / PHP /
  libmcrypt -zxvf 타르-2.5.8.tar.gz
  CD-libmcrypt 2.5.8
  ./configure를 --prefix = / usr / 지방 // - 접두사 = 디렉토리가 설치되어 있어야합니다
  (가) 만들어
  이 (가) 설치하기

 

지금까지, 그것은 설치 PHP는, 다음 단계의 nginx와 PHP를 구성하는 것입니다 

  

네, PHP와의 nginx 구성

  1. PHP 설정

  은 cp php.ini의 개발은 /home/php/php5/etc/php.ini
  CP /home/php/php5/etc/php-fpm.conf.default /home/php/php5/etc/php-fpm.conf

  

  정력 /home/php/php5/etc/php.ini // 정력 당신이 VI 명령을 사용할 수 있습니다 작동하지 않습니다

  모듈의 Nginx PHP-FPM 후단을 방지하기위한 요청을 전송하고, 파일이 존재하지 않는 경우에 대해 본 명세서에 기재된 공문서에 따른 디폴트 값 1 및 주석이다 PHP 설정 항목 cgi.fix_pathinfo 찾을 수있는 구성 파일을 열기 때문에 악성 스크립트 삽입 공격을 방지하기 위해, 그래서 이것은 주석과 0으로 설정해야합니다.

  저장하고 종료하도록 설정되어

  정력 또는 VI 구성 파일을 // 후, "/cgi.fix_pathinfo/"를 입력하면 찾을 수없는 경우, 당신이 다음 장소 찾기 위해, 행에서 여러 번 입력 입력 "내가"포인터가 현재 행의 번호를 입력 할 수 있습니다 찾을 수 있습니다 쓰기 모드. ":"쓰기 모드를 종료하려면 "Esc를"을 누르면 수정 한 후 다음 "시프트"+를 누르면 저장하고 종료하려면 "WQ"를 입력합니다.

  와 - 설정 파일 경로 그래서 PHP의 뒷면에 지정 등 = / 가정 / php에 / PHP5 / - : 장소는 php.ini의 설정 파일의 위치, 컴파일러 매개 변수를 쓸 수 컴파일하기 전에 매개 변수 설정을 구성 할 수 있음을 유의 다른 위치의 php.ini에 배치가 아닌 경우이 매개 변수는 PHP 설치 디렉토리의 기본 위치 lib 디렉토리 인 경우, 디렉토리의 php.ini 설정 파일을 읽어 콘크리트는은 phpinfo 볼 () 출력 인터페이스 할 수있다, PHP는 읽을 수 없습니다 , 모든 구성 변경 사항이 적용되지 않습니다에,이 점에주의  

 

  정력은 /home/cib/php/etc/php-fpm.conf
  열고 사용자 그룹이 사이트 www가있는 경우, 다음 아무도 변경되지 않습니다 (해당 공개 사이트에 사용자 및 그룹의 PHP-fpm.conf 사용자 및 그룹을 수정 www가 어디 대신 Nginx에)
  사용자의 Nginx =
  그룹 = Nginx에

 

  (권한을 근절해야한다) PHP-FPM을 시작
  / 홈 / PHP / PHP5 경우 / sbin / PHP-FPM

  만약 오류 : 대한 청취 소켓에 바인드 할 수없는 주소 '127.0.0.1:9000': 이미 사용에 주소 오류
  killall는 PHP-FPM
  을 다시 시작 시작-FPM PHP
  / 홈 / PHP / PHP5 경우 / sbin / PHP-FPM을

  2. nginx를 구성

  CD를 nginx를 서버 / conf의 / (의 nginx 사용자가, nginx를 nginx를 사용자를 시작해야합니다)

  정력 nginx.conf

  } {는 HTTP의 상단 nginx.conf 추가

  /home/nginx/nginx-server/conf.d/*.conf 포함, conf의 각 사이트의 프로필을 nginx에있다 * //이 먼저 conf.d 디렉토리를 작성해야합니다.

  저장 및 종료

  그런 다음 conf.d의 .conf 파일 디렉토리 구성의 각 (여기 test.conf로 대체)

  CD는 ... // 이전 디렉토리로 현재 디렉토리를 종료

  이 디렉토리 아래에있는 conf.d 디렉토리에 CD를 conf.d //

  CP /home/nginx/nginx-server/conf/nginx.conf /home/nginx/nginx-server/conf.d/test.conf // nginx.conf는 지정된 디렉토리 이름 test.conf에 파일을 복사

  정력 test.conf // test.conf 모든 디렉토리를 삭제하고 다음 (예 : php.ini의 구성 및 구성 환경 변수를 참조하여 종료 이전에 저장 작성하는 방법으로 작동하지 않습니다 정력 VI 명령을) 기록합니다

  {서버
    (가) 80 듣고; // 외부 네트워크에 연결된 해당 포트 번호에
    서버 _ 로컬 호스트; // 해당 도메인 이름, 다른 포트에는 해당 IP를 사용할 수있는 네트워크 내 연결 및 포트 (80)가없는 경우
    루트 HTML / 테스트 / / 현장 설치 상대 경로는 html 디렉토리 바로 아래의 nginx 아래에 장착되어 있기 때문에, 할 수도 있습니다 직접 경로 테스트 (테스트 이름, 관련 최고의 프로젝트와 사이트의 특정 파일 이름)에 대한 웹 사이트의 파일
    인덱스 index.html을 인덱스입니다. HTM의 index.php를, 사이트 페이지를 엽니 다 // 기본

    위치 ~ \ .PHP을 $ {// PHP 모듈은 지원
      fastcgi_pass 127.0.0.1:9000를,
      의 index.php를 fastcgi_index,
      fastcgi_param SCRIPT_FILENAME $ $ DOCUMENT_ROOT의 fastcgi_script_name을; // $ 경로에 전면 루트를 DOCUMENT_ROOT
      (가) fastcgi_params을 포함한다;
    }
  }

  // 여기에주의하는 것은 비 루트 권한은 다음과 같은 포트 번호 1024을 사용할 수 없습니다

 

다섯 개 테스트

  1. 시작 Nginx에 (바람직하게 사용자와의 nginx)

  nginx를 시작 주소를 입력

  CD / 홈 / nginx를 /의 nginx 서버 / sbin에 / // nginx를 사용자가 직접 CD를 nginx를 서버 / sbin에 /

  ./nginx // 시작의 nginx

  첫 번째 ./nginx을 시작하는 것은보기 -t 구성 파일을 권장하기 전에의 nginx에서 정확

  ./nginx -s 다시로드 // 재시작의 nginx. 당신이 nginx를 시작한 경우, 시작 명령 ./nginx 사용하지 않아야하지만, 여기에 명령을 사용한다, 그렇지 않으면 포트 오류가있을 것입니다

  2. 퀴즈

  테스트 디렉토리 웹 사이트에 index.php 파일을 쓰기 

  index.php 파일은 다음의 총수 :
  <? PHP
    은 phpinfo ();
  ?>

  당신이 메시지은 phpinfo를 열 수있는 경우, 도메인 이름을 열고, 그 PHP 구성 정보, 그것은 PHP를 설치 구성이 성공적으로 나타냅니다.

  // 여기에 결합 도메인이 아직 없기 때문에, 그래서만을 사용 방법을 열어 "IP 포트".

지금까지 모든 것을.

 

일부 작은 것들의 나머지

  1. 포트 번호, 당신은 열려 있지이 시간 기준이 테스트 사이트를 차단하는 방화벽이 발생할 수 있습니다 https://www.cnblogs.com/chenlizhi/p/6668656.html를 , 포트 번호를 설정합니다.

  2 포트 점유 질문 기준 https://www.jianshu.com/p/8f6a42fb0654 또는 기준 https://blog.csdn.net/qq_27252133/article/details/53646986 번째 방법 킬링 공정 방법

  3. MySQL의 데이터베이스에 연결할 수 없습니다 빌드 후 PHP 사이트의 결과로, 외부 IP 연결이 될 수 없습니다,이 시간 기준 https://www.cnblogs.com/xiaochongzi/p/6627418.html 네트워크 외부 설정은 연결할 수 있습니다.

 

  참조만을위한 설치 단계는 리눅스 환경이 다른, 상황이 몇 종속성 및 라이브러리 (즉, 루트 권한을 사용해야한다)로 설치되지 않을 수 있습니다 직원은 당신이 경로를 소유 할 수있는 패키지에 따라 설치 루트 권한으로 도울 수 있습니다 로는, 각각의 종속성에 대응하는 것으로 정의. 루트 권한을 사용하지 않고 일반 생산 환경, 권한이 너무 때문이다.

 

참고 기사 : https://blog.csdn.net/nouswait/article/details/83105378    주 참조 소스

      https://www.cnblogs.com/freeweb/p/5425554.html      보조 기준 소스

      https://blog.csdn.net/hometing218/article/details/79516686  cmake를 설치

      https://www.cnblogs.com/nucdy/p/5784809.html    데이터베이스 암호를 수정

      https://www.cnblogs.com/Erick-L/p/7066564.html      의 nginx 멀티 사이트 구성

      https://www.cnblogs.com/ghjbk/p/6728100.html    PHP-FPM 오류 문제

추천

출처www.cnblogs.com/fudanchencds/p/10972602.html