Проблемы с доморощенным Apache после удаления MacPorts

484
rhand

Я удалил MacPorts полностью после их основного положения здесь . удаление всех портов, а затем удаление всех папок

sudo rm -rf \ /opt/local \ /Applications/DarwinPorts \ /Applications/MacPorts \ /Library/LaunchDaemons/org.macports.* \ /Library/Receipts/DarwinPorts*.pkg \ /Library/Receipts/MacPorts*.pkg \ /Library/StartupItems/DarwinPortsStartup \ /Library/Tcl/darwinports1.0 \ /Library/Tcl/macports1.0 \ ~/.macports 

Затем я установил homebrew, dnsmasq и MySQL. Последние два, которые я установил с помощью Brew и Apache, я хотел запустить самостоятельно. Теперь кажется, что Apache все еще работает через Macports.

ps ax | grep httpd 254 ?? Ss 0:00.72 /opt/local/apache2/bin/httpd -k start 258 ?? S 0:00.02 /opt/local/apache2/bin/httpd -k start 259 ?? S 0:00.01 /opt/local/apache2/bin/httpd -k start 262 ?? S 0:00.01 /opt/local/apache2/bin/httpd -k start 1811 ?? S 0:00.01 /opt/local/apache2/bin/httpd -k start 1812 ?? S 0:00.01 /opt/local/apache2/bin/httpd -k start 1818 ?? S 0:00.01 /opt/local/apache2/bin/httpd -k start 1820 ?? S 0:00.01 /opt/local/apache2/bin/httpd -k start 1826 ?? S 0:00.02 /opt/local/apache2/bin/httpd -k start 1857 ?? S 0:00.02 /opt/local/apache2/bin/httpd -k start 2336 ?? S 0:00.01 /opt/local/apache2/bin/httpd -k start 3720 s000 S+ 0:00.00 grep httpd 

Это, хотя все порты были удалены, а также все папки, связанные с MacPorts. Я также думаю, что все пусковые установки были удалены. Как можно загрузить httpd сейчас?

Другая проблема заключается в том, что DocumentRoot не загружает DocumentRoot по умолчанию DocumentRoot "/Library/WebServer/Documents"из /etc/apache2/httpd.confnor /private/etc/apache2/httpd.conf. Кажется, для загрузки старого MacPorts documentRoot, но откуда? Все файлы и папки ушли, насколько я знаю. И когда я проверяю это, он показывает новый DocumentRoot

sudo apachectl -V | grep -i SERVER_CONFIG_FILE | cut -f2 -d'"' | xargs grep -i '^DocumentRoot' | cut -f2 -d'"' /Library/WebServer/Documents 

И когда я выгрузил и загрузил Apache OSX, я получил сообщение об ошибке, показывающее, что мой vhost был загружен:

sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist Password: jaspersmbp:etc jasper$ sudo launchctl load -w /System/Library/LaunchDaemons/org.apache.httpd.plist jaspersmbp:etc jasper$ apachectl AH00112: Warning: DocumentRoot [/usr/docs/dummy-host.example.com] does not exist AH00112: Warning: DocumentRoot [/usr/docs/dummy-host2.example.com] does not exist AH00526: Syntax error on line 41 of /private/etc/apache2/extra/httpd-vhosts.conf: Invalid command 'VirtualDocumentRoot', perhaps misspelled or defined by a module not included in the server configuration 

Но открытие localhost по-прежнему загружает неправильный или старый DocumentRoot

Здесь файл атс хостов

## # Host Database # # localhost is used to configure the loopback interface # when the system is booting. Do not change this entry. ## 127.0.0.1 localhost jaspersmbp.local wordpress.local joomla.local 255.255.255.255 broadcasthost ::1 localhost fe80::1%lo0 localhost  # My local aliases 

И вот VirtualHost у /etc/apache2/extra/httpd-vhosts.confя добавил в загруженные локальные домены с * dev на лету

<Virtualhost *:80> DocumentRoot "/Users/jasper/webdesign" ServerName vhosts.dev ServerAlias *.dev UseCanonicalName Off LogFormat "%V %h %l %u %t \"%r\" %s %b" vcommon ErrorLog "/Users/jasper/webdesign/vhosts-error_log" <Directory "/Users/jasper/webdesign/*"> Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny Allow from all </Directory> </Virtualhost> 

Запуск apachectl, похоже, перезапускает Apache MacPorts, но я не могу найти его ни в .bashrc, ни в .bash_profile в моем $ PATH.

И мой ПУТЬ

echo $PATH /Users/jasper/.rvm/gems/ruby-2.1.1/bin:/Users/jasper/.rvm/gems/ruby-2.1.1@global/bin:/Users/jasper/.rvm/rubies/ruby-2.1.1/bin:/usr/local/heroku/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/Users/jasper/.rvm/bin 

Вопросы:

  1. Как я могу остановить неправильный призрачный демон Apache
  2. Как я могу найти, где корень документа действительно загружен и изменить?
0

1 ответ на вопрос

0
rhand

Я нашел https://discussions.apple.com/thread/6602475, указывающий, что для остановки обоих процессов httpd и остановки ошибки, которую я видел в своем журнале регистрации,

11/24/14 4:53:29.105 PM com.apple.xpc.launchd[1]: (org.apache.httpd) Service only ran for 0 seconds. Pushing respawn out by 10 seconds. 

что я должен был использовать

sudo apachectl stop sudo killall -9 httpd 

Кажется, главное, что мне нужно было убить все старые запущенные процессы httpd. После этого новые хосты, созданные в файле хоста, начали работать нормально.

И когда я проверил наличие демона, я увидел:

ps ax |grep httpd 5798 ?? Ss 0:00.30 /usr/sbin/httpd -D FOREGROUND 5799 ?? S 0:00.00 /usr/sbin/httpd -D FOREGROUND 5800 ?? S 0:00.00 /usr/sbin/httpd -D FOREGROUND 5801 ?? S 0:00.00 /usr/sbin/httpd -D FOREGROUND 5802 ?? S 0:00.00 /usr/sbin/httpd -D FOREGROUND 

снова. Наконец OSX снова запускает Apache.