Zainstalowane jako moduł Apache Kiedy PHP jest używane jako moduł Apache, dziedziczy uprawnienia użytkownika Apache (zazwyczaj te użytkownika "nobody"). Wpływa to na kilka rzeczy w kwestii bezpieczeństwa i autoryzacji. Na przykład, jeśli używasz PHP do dostępu do bazy danych, o ile ta baza nie ma wbudowanej kontroli dostępu, będziesz musiał sprawić, aby baza danych była dostępna dla użytkownika "nobody". Oznacza to, że złośliwy skrypt może uzyskać dostęp i modyfikować dane w bazie, nawet bez nazwy użytkownika i hasła. Jest zupełnie możliwe, żeby robot sieciowy natknął się na stronę administracyjną bazy danych i skasował wszystkie twoje bazy danych. Możesz się przed tym zabezpieczyć, używając autoryzacji Apache lub stworzyć własny model dostępu używając LDAP, plików &htaccess; itd. Często, po ustawieniu zabezpieczeń do tego stopnia, że użytkownik PHP (w tym wypadku użytkownik Apache) nie stanowi już dużego zagrożenia, odkrywa się, że PHP nie jest już w stanie zapisać żadnych plików do katalogu użytkownika. Lub że nie może uzyskać dostępu do ani modyfikować baz danych. Zabezpieczenia powstrzymują przed zapisywaniem tych dobrych i tych złych plików lub wprowadzaniem dobrych i złych danych do bazy. Częstą pomyłką bezpieczeństwa czynioną w tym momencie jest pozwolenie Apache na działanie z uprawnieniami roota albo zwiększenie uprawnień Apache w inny sposób. Zwiększanie uprawnień użytkownika Apache do roota jest skrajnie niebezpieczne i może narazić cały system, więc użycie sudo, chroot lub uruchamianie jako root w inny sposób nie powinno być nawet rozważane, o ile nie jesteś specjalistą z zakresu bezpieczeństwa. Istnieją pewne prostsze sposoby. Używając open_basedir możesz kontrolować i ograniczać katalogi, które mogą być używane przez PHP. Możesz także ustawić obszary tylko dla Apache, aby zabronić aktywności pochodzącej z sieci dla katalogów innych niż danego użytkownika.