Ship to Tangiers – there are several ferry services that cross the Straight of Gibralter from Spain to Morocco or to Ceuta which is a small part of Spain on the African continent surrounded by Moroccan land. The most common departure point is from Algeciras to Tangier.
There are several ferry services that operate this route – a ferry leaves every 90 minutes between 7am and 10pm – and during the very high season usually in mid summer – the ferrys run 24/7. The cost is about $25 US one-way. These ferries also have capacity for cars which are driven directly onto the lower dock. The price per car is about $70 for a one-way trip.
Train – the train service in Morocco is quite excellent, efficient and timely. The trains are generally clean and comfortable. They reminded me of any of the decent trains I have used in European countries.
Bus – the bus service in Morocco is affordable and plentiful. If your travel bags are small enough I highly recommend keeping them with you in the bus, either on your lap or in an empty seat (empty seats on Moroccan buses are rare). The reason for this is that you will be charged a separate totally arbitrary fee for stowing your bags under the bus in the baggage compartment. Luggage handles request payment for putting your bags in the compartment but they do not give you a set price. They will have no qualms about coming on board with you and causing a scene until you pay them more money. Note: CTM is the national bus service serving the entire country – and they charge a 5 Dirham fee per backpack or bag.
Taxi service – is good for short trips. Always agree on a price before you get in the taxi unless the taxi has a meter. If the taxi is metered be sure to check the meter before you start your trip.