Matthew Ife와 shodanshok의 답변은 일반적으로 문제를 다루고 있지만, 내가 관리하는 이러한 종류의 시스템이기 때문에 문제를 맥락에 두어 특정 문제를 해결하고 싶습니다.
PHP / MySQL 웹앱을 배포하기위한 현재 빌드는 다음과 같습니다.
- CentOS 7.x
- nginx에서 제공하는 nginx 1.8.x
- remi에서 제공하는 PHP 7 또는 PHP 5.6 (응용 프로그램에 따라 다름)
- MariaDB에서 제공 한 MariaDB 10.0.x
먼저 왜 특정 배포 또는 패키지 세트를 선택하는지 생각해 봅시다. 최신 기능보다 안정성을 중시하거나 안정성보다 최신 기능을 중시합니다. 소프트웨어를 안정화하는 데 버그를 수정하는 데 시간이 걸리고 새로운 기능을 추가하면 버그가 생겨 불안정성이 발생하므로 일반적으로 동일한 배포판에 둘 다 가질 수는 없습니다.
일반적으로 응용 프로그램이 실행되는 운영 체제는 최대한 안정적이지만 현대적인 기능 세트를 원합니다. 따라서 지금은 다소 오래된 CentOS 6보다 CentOS 7을 선택하고 작동 하지만 지원 기간 이 오래 걸리지 않으므로 새 프로젝트에 사용하지 않습니다. .
그러나 CentOS에 포함 된 nginx 버전이 너무 오래되어 필요한 기능과 버그 수정이 없다는 문제가 발생했습니다 . 따라서 대체 패키지를 검색하여 nginx.org가 자체 패키지를 배포한다는 것을 알았습니다. 나는 거의 즉시 그들에게로 전환하여 장거리에 걸쳐 완벽하게 안정적인 것을 발견했습니다.
그렇다면 PHP가 있습니다. CentOS와 함께 제공되는 PHP 버전은 유일하게 얻을 수있는 유일한 버전이며 보안 업데이트 만받을 것입니다. 새로운 기능이나 버그 수정이 없습니다. 따라서 업스트림을 지원하지 않으면 패키지를 사용하면 최신 PHP 웹 응용 프로그램을 실행할 수 없게됩니다. 따라서 이것도 교체해야합니다.
오랜 경험에서 필자는 실행 한 웹 응용 프로그램도 업데이트되고 해당 버그 수정이 필요하므로 PHP를 사용하여 버그 수정 릴리스를 추적하는 것이 가장 좋은 방법이라는 것을 알게되었습니다. 그래서 많은 다른 PHP 패키지 세트를 평가 한 후, 나는 레미의 pacakges에 정착했다. Remi는 Red Hat 직원이되었으며 RHEL / CentOS의 PHP 패키지를 담당합니다. 그래서 나는 그의 패키지가 고품질이 될 것이라는 것을 알고 있습니다. 그것들은 시스템 패키지를 대체 할 수 있으며 완벽하게 작동합니다.
마지막으로 MariaDB에 도달합니다. 여기에 시스템 패키지를 유지하고 아무런 영향을받지 않도록 선택할 수 있습니다 . CentOS와 함께 제공되는 5.5 버전에서 제공되지 않는 TokuDB 및 기타 일부 성능 향상을 이용하기 위해 MariaDB의 10.0 패키지로 전환하기로 결정했습니다.
전반적으로 기본 시스템의 안정성이 필요하지만 웹 응용 프로그램은 LOB (Line of Business) 소프트웨어보다 훨씬 빠르게 변경되므로 서버를 유지해야합니다. 따라서 패키지를 업그레이드하면 추가 관리 오버 헤드 (일명)가 거의 없어 명확한 이점을 얻을 수있는 목표 지점을 선택했습니다.
/usr/local