zero-phasing frequency components while keeping the same magnitude, in Matlab How is it possible?

I was thinking of taking just the real part of the DFT of my signal (isn't that zeroing out phases?) with 

real(fft(X))


but the magnitudes of that result don't match :

abs(real(fft(X))) != abs(fft(X))


Thanks in advance.
it is obvious that abs(real(fft(x)))!=abs(fft(x)) since you are removing the imaginary part while taking the real function.One way if you want a signal with all dft components being real.Is to normal to just take abs(fft(x)) as the spectrum itself rather than taking the real components.In this you maintain the magnitude and all the components have zero phase.I hope this answers your question